Skip to content

Folha de dicas de layout CSS Flexbox

O modelo de layout Flexbox (Flexible Box) fornece uma maneira mais eficiente de alinhar e distribuir itens dentro de um contentor, mesmo quando o seu tamanho é desconhecido ou dinâmico.

Contentor Flex

Set on parent: display: flex; or display: inline-flex;

Propriedade Descrição Valores Comuns
flex-direction Direção do eixo principal row, row-reverse, column, column-reverse
flex-wrap Se deve quebrar linha nowrap, wrap, wrap-reverse
flex-flow Atalho para direção e quebra de linha row wrap
justify-content Alinhamento no eixo principal flex-start, flex-end, center, space-between, space-around
align-items Alinhamento no eixo transversal flex-start, flex-end, center, baseline, stretch
align-content Alinhamento de múltiplas linhas no eixo transversal flex-start, flex-end, center, space-between, stretch

Itens Flex

Set on children:

Propriedade Descrição Padrão
order Ordem de disposição (valores menores vêm primeiro) 0
flex-grow Proporção de crescimento (quando há espaço) 0
flex-shrink Proporção de encolhimento (quando falta espaço) 1
flex-basis Tamanho base antes da distribuição de espaço auto
flex Atalho para grow, shrink e basis 0 1 auto
align-self Permite alinhamento diferente para um único item auto

Conceitos Básicos

  • Eixo Principal (Main Axis): Horizontal por padrão, definido por flex-direction.
  • Eixo Transversal (Cross Axis): A direção perpendicular ao eixo principal.

Exemplos de Cenários

Centramento horizontal e vertical

.container {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
}

Distribuição de largura igual

.item {
  flex: 1; /* Ocupar uniformemente o espaço restante */
}

Alinhamento nas extremidades (Space Between)

.navbar {
  display: flex;
  justify-content: space-between;
}