Itens CSS Flexbox


Índice

    Mostrar índice


Elementos filhos (itens)

Os elementos filhos diretos de um flex container tornam-se automaticamente itens flexíveis (flex).

1

2

3

4

O elemento acima representa quatro flex items azuis dentro de um flex container cinza.

Exemplo

<div class="flex-container">
  <div>1</div>
  
  <div>2</div>
  <div>3</div> 
  
  <div>4</div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>Flexible Items</h1>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div>3</div> 
  <div>4</div>
</div>

<p>All direct children of a flexible container becomes flexible items.</p>

</body>
</html>


As propriedades do item flexível são:

  • order
  • flex-grow
  • flex-shrink
  • flex-basis
  • flex
  • align-self

A propriedade do pedido

A propriedade order especifica a ordem dos itens flexíveis.

1

2

3

4

O primeiro item flexível no código não precisa aparecer como o primeiro item no layout.

O valor do pedido deve ser um número, o valor padrão é 0.

Exemplo

A propriedade order pode alterar a ordem dos itens flexíveis:

<div class="flex-container">
  <div style="order: 3">1</div>
  
  <div style="order: 2">2</div>
  <div style="order: 4">3</div> 
  
  <div style="order: 1">4</div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container>div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The order Property</h1>

<p>Use the order property to sort the flex items as you like:</p>

<div class="flex-container">
  <div style="order: 3">1</div>
  <div style="order: 2">2</div>
  <div style="order: 4">3</div> 
  <div style="order: 1">4</div>
</div>

</body>
</html>



A propriedade flex-grow

A propriedade flex-grow especifica quanto um item flexível crescerá em relação ao restante dos itens flexíveis.

1

2

3

O valor deve ser um número, o valor padrão é 0.

Exemplo

Faça o terceiro item flexível crescer oito vezes mais rápido que os outros itens flexíveis:

<div class="flex-container">
  <div style="flex-grow: 1">1</div>
  
  <div style="flex-grow: 1">2</div>
  <div style="flex-grow: 
  8">3</div> 
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex-grow Property</h1>

<p>Make the third flex item grow eight times faster than the other flex items:</p>

<div class="flex-container">
  <div style="flex-grow: 1">1</div>
  <div style="flex-grow: 1">2</div>
  <div style="flex-grow: 8">3</div>
</div>

</body>
</html>




A propriedade flex-shrink

A propriedade flex-shrink especifica quanto um item flexível diminuirá em relação ao restante dos itens flexíveis.

1

2

3

4

5

6

7

8

9

10

O valor deve ser um número, o valor padrão é 1.

Exemplo

Não deixe o terceiro item flexível encolher tanto quanto os outros itens flexíveis:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-shrink: 
  0">3</div>
    <div>4</div>
  <div>5</div>
  <div>6</div>
  
  <div>7</div>
  <div>8</div>
  <div>9</div>
  
  <div>10</div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container>div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex-shrink Property</h1>

<p>Do not let the third flex item shrink as much as the other flex items:</p>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-shrink: 0">3</div>
  <div>4</div>
  <div>5</div>
  <div>6</div>
  <div>7</div>
  <div>8</div>
  <div>9</div>
  <div>10</div>
</div>

</body>
</html>



A propriedade flexível

A propriedade flex-basis especifica o comprimento inicial de um item flexível.

1

2

3

4

Exemplo

Defina o comprimento inicial do terceiro item flexível para 200 pixels:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-basis: 200px">3</div>
    <div>4</div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex-basis Property</h1>

<p>Set the initial length of the third flex item to 200 pixels:</p>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex-basis:200px">3</div>
  <div>4</div>
</div>

</body>
</html>



A propriedade flexível

A propriedade flex é uma propriedade abreviada para propriedades flex-grow, flex-shrink e flex-basis.

Exemplo

Torne o terceiro item flexível não expansível (0), não encolhível (0) e com um comprimento inicial de 200 pixels:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex: 
  0 0 200px">3</div>
    <div>4</div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  align-items: stretch;
  background-color: #f1f1f1;
}

.flex-container>div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The flex Property</h1>

<p>Make the third flex item not growable (0), not shrinkable (0), and with an initial length of 200 pixels:</p>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="flex: 0 0 200px">3</div>
  <div>4</div>
</div>

</body>
</html>



A propriedade alinhar-se

A propriedade align-self especifica o alinhamento do item selecionado dentro do contêiner flexível.

A propriedade align-self substitui o alinhamento padrão definido pela propriedade align-items do contêiner.

1

2

3

4

Nestes exemplos usamos um container de 200 pixels de altura, para melhor demonstrar o propriedade alinhar-self:

Exemplo

Alinhe o terceiro item flexível no meio do contêiner:

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="align-self: 
  center">3</div>
    <div>4</div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  height: 200px;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The align-self Property</h1>

<p>The "align-self: center;" aligns the selected flex item in the middle of the container:</p>

<div class="flex-container">
  <div>1</div>
  <div>2</div>
  <div style="align-self: center">3</div>
  <div>4</div>
</div>

<p>The align-self property overrides the align-items property of the container.</p>

</body>
</html>


Exemplo

Alinhe o segundo item flexível na parte superior do contêiner e o terceiro item flexível na parte superior fundo do recipiente:

<div class="flex-container">
  <div>1</div>
  <div style="align-self: 
  flex-start">2</div>
    <div style="align-self: 
  flex-end">3</div>
    <div>4</div>
</div>

Experimente você mesmo →

<!DOCTYPE html>
<html>
<head>
<style>
.flex-container {
  display: flex;
  height: 200px;
  background-color: #f1f1f1;
}

.flex-container > div {
  background-color: DodgerBlue;
  color: white;
  width: 100px;
  margin: 10px;
  text-align: center;
  line-height: 75px;
  font-size: 30px;
}
</style>
</head>
<body>

<h1>The align-self Property</h1>

<p>The "align-self: flex-start;" aligns the selected flex item at the top of the container.</p>
<p>The "align-self: flex-end;" aligns the selected flex item at the bottom of the container.</p>

<div class="flex-container">
  <div>1</div>
  <div style="align-self: flex-start">2</div>
  <div style="align-self: flex-end">3</div>
  <div>4</div>
</div>

<p>The align-self property overrides the align-items property of the container.</p>

</body>
</html>



As propriedades dos itens CSS Flexbox

A tabela a seguir lista todas as propriedades dos itens CSS Flexbox:

align-self

Especifica o alinhamento de um item flexível (substitui a propriedade align-items do contêiner flexível)

flex

Uma propriedade abreviada para flex-grow, flex-shrink e flex-basis propriedades

flex-basis

Especifica o comprimento inicial de um item flexível

flex-grow

Especifica quanto um item flexível crescerá em relação ao restante dos itens flexíveis dentro do mesmo contêiner

flex-shrink

Especifica quanto um item flexível diminuirá em relação ao restante dos itens flexíveis dentro do mesmo contêiner

order

Especifica a ordem dos itens flexíveis dentro do mesmo contêiner