Bootstrap 4 Flex


Bootstrap 4 Flex

Use classes flex para controlar o layout dos componentes do Bootstrap 4.


Flexbox

A maior diferença entre o Bootstrap 3 e o Bootstrap 4 é que o Bootstrap 4 agora usa flexbox, em vez de floats, para lidar com o layout.

O Módulo de Layout de Caixa Flexível, torna mais fácil projetar uma estrutura de layout responsiva flexível sem usar flutuação ou posicionamento. Se você é novo em flex, pode ler sobre isso em nosso Tutorial CSS Flexbox .

Nota: Flexbox não é compatível com IE9 e versões anteriores.

Se você precisar de suporte ao IE8-9, use o Bootstrap 3. É a versão mais estável do Bootstrap e ainda é suportada pela equipe para correções críticas de bugs e alterações na documentação. No entanto, nenhum novo recurso será adicionado a ele.

Para criar um contêiner flexbox e transformar filhos diretos em itens flexíveis, use a d-flexclasse:

Exemplo

Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex p-3 bg-secondary text-white">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

Para criar um contêiner flexbox inline, use a d-inline-flexclasse:

Exemplo

Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-inline-flex p-3 bg-secondary text-white">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

Direção horizontal

Use .flex-rowpara exibir os itens flexíveis horizontalmente (lado a lado). Este é o padrão.

Dica: Use .flex-row-reverse para alinhar à direita a direção horizontal:

Exemplo

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex flex-row bg-secondary">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

<div class="d-flex flex-row-reverse bg-secondary">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

Direção vertical

Use .flex-columnpara exibir os itens flexíveis verticalmente (em cima uns dos outros) ou .flex-column-reverse para inverter a direção vertical:

Exemplo

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex flex-column">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

<div class="d-flex flex-column-reverse">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>


Justifique o conteúdo

Use as .justify-content-*classes para alterar o alinhamento dos itens flexíveis. As classes válidas são start(padrão) , end, ou :centerbetweenaround

Exemplo

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex justify-content-start">...</div>
<div class="d-flex justify-content-end">...</div>
<div class="d-flex justify-content-center">...</div>
<div class="d-flex justify-content-between">...</div>
<div class="d-flex justify-content-around">...</div>

Preenchimento / Larguras Iguais

Use .flex-fillem itens flexíveis para forçá-los em larguras iguais:

Exemplo

Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex">
  <div class="p-2 bg-info flex-fill">Flex item 1</div>
  <div class="p-2 bg-warning flex-fill">Flex item 2</div>
  <div class="p-2 bg-primary flex-fill">Flex item 3</div>
</div>

Crescer

Use .flex-grow-1em um item flexível para ocupar o resto do espaço. No exemplo abaixo, os dois primeiros itens flexíveis ocupam o espaço necessário, enquanto o último item ocupa o restante do espaço disponível:

Exemplo

Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary flex-grow-1">Flex item 3</div>
</div>

Dica: Use .flex-shrink-1em um item flexível para reduzi-lo, se necessário.


Pedido

Altere a ordem visual de um(s) item(ns) flexível(is) específico(s) com as .orderclasses. As classes válidas são de 0 a 12, onde o número mais baixo tem a prioridade mais alta (ordem-1 é mostrada antes da ordem-2, etc.):

Exemplo

Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex bg-secondary">
  <div class="p-2 bg-info order-3">Flex item 1</div>
  <div class="p-2 bg-warning order-2">Flex item 2</div>
  <div class="p-2 bg-primary order-1">Flex item 3</div>
</div>

Margens automáticas

Adicione facilmente margens automáticas a itens flexíveis com .mr-auto(empurre os itens para a direita) ou usando .ml-auto(empurre os itens para a esquerda):

Exemplo

Flex item 1
Flex item 2
Flex item 3
Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex bg-secondary">
  <div class="p-2 mr-auto bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 bg-primary">Flex item 3</div>
</div>

<div class="d-flex bg-secondary">
  <div class="p-2 bg-info">Flex item 1</div>
  <div class="p-2 bg-warning">Flex item 2</div>
  <div class="p-2 ml-auto bg-primary">Flex item 3</div>
</div>


Enrolar

Controle como os itens flexíveis são agrupados em um contêiner flexível com .flex-nowrap(padrão) .flex-wrapou .flex-wrap-reverse.

Clique nos botões abaixo para ver a diferença entre as três classes, alterando o encapsulamento dos itens flex na caixa de exemplo:

Exemplo

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25

Exemplo

<div class="d-flex flex-wrap">..</div>

<div class="d-flex flex-wrap-reverse">..</div>

<div class="d-flex flex-nowrap">..</div>

Alinhar conteúdo

Controle o alinhamento vertical dos itens flexíveis reunidos.align-content-* com as classes. As classes válidas são .align-content-start(padrão) , .align-content-end, .align-content-center, e ..align-content-between.align-content-around.align-content-stretch

Observação: essas classes não têm efeito em linhas únicas de itens flexíveis.

Clique nos botões abaixo para ver a diferença entre as cinco classes, alterando o alinhamento vertical dos itens flex na caixa de exemplo:

Exemplo

Flex item 1
Flex item 2
Flex item 3
Flex item 4
Flex item 5
Flex item 6
Flex item 7
Flex item 8
Flex item 9
Flex item 10
Flex item 11
Flex item 12
Flex item 13
Flex item 14
Flex item 15
Flex item 16
Flex item 17
Flex item 18
Flex item 19
Flex item 20
Flex item 21
Flex item 22
Flex item 23
Flex item 24
Flex item 25

Exemplo

<div class="d-flex flex-wrap align-content-start">..</div>

<div class="d-flex flex-wrap align-content-end">..</div>

<div class="d-flex flex-wrap align-content-center">..</div>

<div class="d-flex flex-wrap align-content-around">..</div>

<div class="d-flex flex-wrap align-content-stretch">..</div>

Alinhar itens

Controle o alinhamento vertical de linhas únicas de itens flexíveis com as .align-items-* classes. As classes válidas são .align-items-start, .align-items-end, .align-items-center, .align-items-baselinee .align-items-stretch (padrão).

Clique nos botões abaixo para ver a diferença entre as cinco classes:

Exemplo

Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex align-items-start">..</div>

<div class="d-flex align-items-end">..</div>

<div class="d-flex align-items-center">..</div>

<div class="d-flex align-items-baseline">..</div>

<div class="d-flex align-items-stretch">..</div>

Alinhar a si mesmo

Controle o alinhamento vertical de um item flexível especificado com as .align-self-* classes. As classes válidas são .align-self-start, .align-self-end, .align-self-center, .align-self-baselinee .align-self-stretch (padrão).

Clique nos botões abaixo para ver a diferença entre as cinco classes:

Exemplo

Flex item 1
Flex item 2
Flex item 3

Exemplo

<div class="d-flex bg-light" style="height:150px">
  <div class="p-2 border">Flex item 1</div>
  <div class="p-2 border align-self-start">Flex item 2</div>
  <div class="p-2 border">Flex item 3</div>
</div>

Aulas Flex responsivas

All flex classes comes with additional responsive classes, which makes it easy to set a specific flex class on a specific screen size.

The * symbol can be replaced with sm, md, lg or xl, which represents small, medium, large or xlarge screens.

Class Description Example
Flex Container    
.d-*-flex Creates a flexbox container for different screens
.d-*-inline-flex Creates an inline flexbox container for different screens
Direction    
.flex-*-row Display flex items horizontally on different screens
.flex-*-row-reverse Display flex items horizontally, and right-aligned, on different screens
.flex-*-column Display flex items vertically on different screens
.flex-*-column-reverse Display flex items vertically, with reversed order, on different screens screens
Justified Content    
.justify-content-*-start Display flex items from the start (left-aligned) on different screens
.justify-content-*-end Display flex items at the end (right-aligned) on different screens
.justify-content-*-center Display flex items in the center of a flex container on different screens
.justify-content-*-between Display flex items in "between" on different screens
.justify-content-*-around Display flex items "around" on different screens
Fill / Equal Width    
.flex-*-fill Force flex items into equal widths on different screens
Grow    
.flex-*-grow-0 Don't make the items grow on different screens  
.flex-*-grow-1 Make items grow on different screens  
Shrink    
.flex-*-shrink-0 Don't make the items shrink on diferent screens  
.flex-*-shrink-1 Make items shrink on different screens  
Order    
.order-*-0-12 Change the order from 0 to 12 on small screens
Wrap    
.flex-*-nowrap Don't wrap items on different screens
.flex-*-wrap Wrap items on different screens
.flex-*-wrap-reverse Reverse the wrapping of items on different screens
Align Content    
.align-content-*-start Align gathered items from the start on different screens
.align-content-*-end Align gathered items at the end on different screens
.align-content-*-center Align gathered items in the center on different screens
.align-content-*-around Align gathered items "around" on different screens
.align-content-*-stretch Stretch gathered items on different screens
Align Items    
.align-items-*-start Align single rows of items from the start on different screens
.align-items-*-end Align single rows of items at the end on different screens
.align-items-*-center Align single rows of items in the center on different screens
.align-items-*-baseline Align single rows of items on the baseline on different screens
.align-items-*-stretch Stretch single rows of items on different screens
Align Self    
.align-self-*-start Align a flex item from the start on different screens
.align-self-*-end Align a flex item at the end on different screens
.align-self-*-center Align a flex item in the center on different screens
.align-self-*-baseline Align a flex item on the baseline on different screens
.align-self-*-stretch Stretch a flex item on different screens