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.

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Cloudinary image

Optimize, customize, deliver, manage and analyze your images.

Remove background in all your web images at the same time, use outpainting to expand images with matching content, remove objects via open-set object detection and fill, recolor, crop, resize... Discover these and hundreds more ways to manage your web images and videos on a scale.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay