DEV Community

Cover image for CSS Flexbox e seus alinhamentos
doug-source
doug-source

Posted on

CSS Flexbox e seus alinhamentos

Inicialmente, para entender como funciona o alinhamento de items presentes em um Flexbox, é necessário descrever diversas definições, em cada possível segmento interno de um elemento HTML que utilize Flexbox.

Definições

  • Flexbox container: é o elemento que recebe a "css rule" declararada como:
.selector { display: flex; }
Enter fullscreen mode Exit fullscreen mode
  • Flex-item: é cada um dos nodos-filhos (descendente direto) do elemento HTML descrito acima.
<parent>
    <child-1></child-1>
    <child-2></child-2>
</parent>
Enter fullscreen mode Exit fullscreen mode
  • Flex-line: é linha vertical ou horizontal, do flexbox container, no qual os flex-items se distribuem. Image1
  • main-axis: o eixo no qual os flex-items são dispostos conforme são incluídos dentro do flex-container.
  • cross-axis: o eixo (oposto à main-axis) no qual as flex-lines são dispostas. Isso só ocorre quando existe a possibilidade dos flex-items ultrapassarem os limites do seu "nodo-pai", ou seja, o flex container. Eles podem overflow o limite dele ou podem quebrar as flex-lines em mais do que uma, gerando um flex-container com múltiplas linhas ou colunas (verticais ou horizontais).
  • main-start e main-end: Definem respectivamente o lado de início e o lado do fim da main-axis.
  • cross-start e cross-end: Definem respectivamente o lado de início e o lado do fim da cross-axis.

A direção e o sentido no qual os flex-items são dispostos depende da propriedade css flex-direction.

O alinhamento flex e as propriedades CSS

Em relação ao alinhamento dos flex-items, existem diversos tipos diferenciados de alinhamento, e todos eles levam em consideração dois tipos de agrupamento de conteúdo:

  • os flex-items presentes em uma única flex-line.
  • todas as flex-lines presentes dentro do flex-container.

NOTA: É importante salientar que, quando o flex-container dispõe os flex-items ao longo da main-axis, por default, todos os flex-items sofrem uma expansão no sentido da cross-axis. Por exemplo, se o sentido da main-axis for horizontal e o da cross-axis for vertical, a height de cada flex-item se expande para preencher o espaço vertical restante do flex-container.

A seguir são descritos os comportamentos de cada propriedade CSS relacionada ao alinhamento resultante em um flexbox:

  • justify-content: alinha ou dispõe os flex-items ao longo da main-axis da flex-line na qual eles estão inseridos, sendo esse efeito aplicado também em cada uma das flex-lines presentes dentro do flex-container.
  • align-content: alinha ou dispõe as flex-lines ao longo da cross-axis do flex-container. Ao aplicar alguns valores nessa propriedade, o comportamento default de expansão de cada flex-items no sentido da cross-axis deixa de ser executado automaticamente.
  • justify-items: se aplica somente a grid containers.
  • align-items: alinha ou dispõe os flex-items ao longo da cross-axis da flex-line na qual eles estão inseridos. Ao aplicar alguns valores nessa propriedade, o comportamento default de expansão de cada flex-items no sentido da cross-axis também deixa de ser executado automaticamente.

Top comments (0)