Itens Flex CSS
Flex Container dirige o pai. Os itens flex respondem a outra pergunta: como cada filho cresce, encolhe e começa o tamanho nessa linha ou coluna? Domine basis, grow e shrink antes de correr atrás de padrões flex responsivos.
Uma caixa de ferramentas de itens flex
📊 Itens flex num relance
| Propriedade | Trabalho do dia a dia |
|---|---|
flex-basis |
Tamanho principal inicial antes de distribuir o espaço livre |
flex-grow |
Quanto espaço sobrante este item reclama (fator sem unidade) |
flex-shrink |
Com que disposição este item encolhe quando o espaço aperta |
flex |
Atalho para grow, shrink e basis |
align-self |
Sobrescreve o align-items do contentor num único item |
order |
Muda a ordem visual (use com parcimônia — mantenha DOM e acessibilidade sãos) |
Pense em basis como o comprimento de partida preferido do item no eixo principal. Depois grow e shrink negociam o espaço livre ou em falta que resta.
flex-grow — tomar o espaço sobrante
Um fator de 1 deixa um item expandir-se no espaço livre. Fatores irmãos competem: dois itens com flex-grow: 1 dividem o resto em partes iguais.
.layout {
display: flex;
gap: 1rem;
}
.layout__main {
flex-grow: 1;
}
.layout__aside {
flex-grow: 0;
width: 14rem;
}
flex-basis — partir de um tamanho
flex-basis define o tamanho principal inicial antes da matemática grow/shrink. Prefira basis para o algoritmo flex; width/height ainda importam, mas basis é o ponto de partida nativo do flex.
.layout__aside {
flex-basis: 14rem;
flex-grow: 0;
flex-shrink: 0;
}
flex-shrink — devolver espaço
Quando a linha fica demasiado apertada, os fatores shrink decidem quem comprime. flex-shrink: 0 protege ícones ou carris fixos de serem esmagados.
.icon-rail {
flex-shrink: 0;
flex-basis: 3rem;
}
O atalho flex
flex: grow shrink basis empacota o trio. Defaults calmos comuns: flex: 1 (crescer, permitir encolher, basis auto) para um filho que preenche; flex: 0 0 auto para um chip rígido.
.card__body {
flex: 1 1 auto;
}
.card__badge {
flex: 0 0 auto;
}
align-self — um item, outro alinhamento cruzado
Sobrescreva o align-items do contentor para um único filho. Útil quando um crachá deve colar no início enquanto os irmãos ficam centrados.
.row {
display: flex;
align-items: center;
gap: 0.75rem;
}
.row .note {
align-self: flex-start;
}
Um hábito calmo de item flex
Basis primeiro para o tamanho pretendido, depois fatores grow/shrink, depois o atalho para organizar. Use align-self com parcimônia. Evite truques de order que baralham o fluxo de teclado e leitor de ecrã — e deixe padrões flex com media queries para Flex Responsive.
.cluster__main {
flex: 1 1 auto;
}
.cluster__meta {
flex: 0 0 auto;
align-self: center;
}
Experimente você
- Faça uma linha main + aside; dê a main
flex-grow: 1. - Defina o aside com
flex-basis: 14remeflex-shrink: 0. - Proteja um ícone com
flex-shrink: 0. - Reescreva grow/shrink/basis com o atalho
flex. - Sobrescreva o alinhamento cruzado de um filho com
align-self.
Erros comuns
- Colocar
flex-growno contentor em vez de num item - Confundir
widthcomflex-basise perguntar-se por que a matemática flex discorda - Reordenar com
ordere partir a ordem de tabulação/fonte - Deixar logótipos esmagarem-se porque shrink ficou no padrão
- Tratar esta lição como o módulo Flex Responsive
Resumo
- Itens flex controlam crescimento, encolhimento e basis inicial
flex-growpartilha espaço livre;flex-shrinkpartilha a compressãoflex-basisé o tamanho de partida flex no eixo principal- O atalho
flexealign-selfafinam filhos individuais - Padrões flex responsivos vêm a seguir; use
ordercom cuidado
🧠 Teste Seu Conhecimento
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 Instruções
- Leia cada pergunta cuidadosamente
- Selecione a melhor resposta para cada pergunta
- Você pode refazer o quiz quantas vezes quiser
- Seu progresso será mostrado no topo