W3docs

Propriedade CSS flex-flow

A propriedade CSS flex-flow é uma abreviação para flex-wrap e flex-direction. Conheça esta propriedade e veja exemplos práticos.

A propriedade CSS flex-flow é uma abreviação que define duas propriedades do flex-container ao mesmo tempo: flex-direction (o eixo ao longo do qual os itens são dispostos) e flex-wrap (se os itens permanecem em uma linha ou quebram para várias). Em vez de escrever ambas as declarações, você as combina em uma única linha, deixando o CSS mais conciso e a intenção mais clara.

Esta propriedade pertence às propriedades do CSS3 e faz parte do módulo de Flexible Box Layout. Ela afeta apenas elementos cujo display está definido como flex ou inline-flex; em elementos não-flex não tem efeito, e se um flex container não possui itens flexíveis, não há nada para dispor.

Esta página aborda a sintaxe de flex-flow, o que cada valor faz e exemplos executáveis para cada combinação comum de direção e quebra.

O que cada valor controla

flex-flow aceita um valor de flex-direction e um valor de flex-wrap, em qualquer ordem:

  • flex-direction — o eixo principal e a ordem que os itens seguem ao longo dele:
    • row (padrão) — da esquerda para a direita.
    • row-reverse — da direita para a esquerda.
    • column — de cima para baixo.
    • column-reverse — de baixo para cima.
  • flex-wrap — o que acontece quando os itens não cabem em uma linha:
    • nowrap (padrão) — todos os itens se comprimem em uma única linha e podem encolher.
    • wrap — os itens transbordam para novas linhas na mesma direção.
    • wrap-reverse — os itens quebram para novas linhas na direção oposta do eixo transversal.

Como o valor inicial é row nowrap, um flex container sem flex-flow definido dispõe os itens em uma única linha horizontal.

Os navegadores modernos suportam a propriedade flex-flow nativamente sem prefixos de fornecedor.

Valor Inicialrow nowrap
Aplica-se aFlex containers
HerdadoNão.
AnimávelNão.
VersãoCSS3
Sintaxe DOMobject.style.flexFlow = "column nowrap";

Sintaxe

Sintaxe da propriedade CSS flex-flow

flex-flow: <flex-direction> || <flex-wrap>;
/* or */ initial | inherit;

Quando definimos flex-flow: row wrap;, o primeiro valor define o flex-direction e o segundo define a propriedade flex-wrap. Os dois valores são independentes de ordem porque aceitam palavras-chave diferentes, portanto flex-flow: wrap row; é igualmente válido. Você também pode fornecer apenas um deles — por exemplo, flex-flow: column; mantém o flex-wrap com seu valor padrão nowrap.

Exemplo da propriedade CSS flex-flow

flex-flow: row wrap;

O código a seguir é equivalente ao código acima.

Exemplo das propriedades flex-direction e flex-wrap

flex-direction: row;
flex-wrap: wrap;

Exemplo da propriedade flex-flow com os valores "row" e "wrap":

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example {
        width: 200px;
        height: 200px;
        border: 1px solid #c3c3c3;
        display: flex;
        flex-flow: row wrap;
      }
      .example div {
        width: 50px;
        height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Flex-flow property example</h2>
    <div class="example">
      <div style="background-color: #8ebf42;">A</div>
      <div style="background-color: #1c87c9;">B</div>
      <div style="background-color: #cccccc;">C</div>
      <div style="background-color: #666666;">D</div>
      <div style="background-color: #4c4a4a;">E</div>
      <div style="background-color: #c6c4c4;">F</div>
    </div>
  </body>
</html>

Exemplo da propriedade flex-flow com os valores "wrap-reverse" e "column":

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example {
        width: 200px;
        height: 200px;
        border: 1px solid #c3c3c3;
        display: flex;
        flex-flow: column wrap-reverse;
      }
      .example div {
        width: 50px;
        height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Flex-flow property example</h2>
    <div class="example">
      <div style="background-color: #8ebf42;">A</div>
      <div style="background-color: #1c87c9;">B</div>
      <div style="background-color: #cccccc;">C</div>
      <div style="background-color: #666666;">D</div>
      <div style="background-color: #4c4a4a;">E</div>
      <div style="background-color: #c6c4c4;">F</div>
    </div>
  </body>
</html>

Exemplo da propriedade flex-flow com os valores "row" e "nowrap":

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example {
        width: 200px;
        height: 200px;
        border: 1px solid #c3c3c3;
        display: flex;
        flex-flow: row nowrap;
      }
      .example div {
        width: 50px;
        height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Flex-flow property example</h2>
    <div class="example">
      <div style="background-color: #8ebf42;">A</div>
      <div style="background-color: #1c87c9;">B</div>
      <div style="background-color: #cccccc;">C</div>
      <div style="background-color: #666666;">D</div>
      <div style="background-color: #4c4a4a;">E</div>
      <div style="background-color: #c6c4c4;">F</div>
    </div>
  </body>
</html>

Resultado

Com flex-flow: row nowrap, todos os seis itens permanecem em uma única linha horizontal e encolhem para caber no container em vez de quebrar:

Itens flex dispostos em uma única linha com o valor flex-flow row nowrap

Exemplo da propriedade flex-flow com os valores "row-reverse" e "nowrap":

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example {
        width: 200px;
        height: 200px;
        border: 1px solid #c3c3c3;
        display: flex;
        flex-flow: row-reverse nowrap;
      }
      .example div {
        width: 50px;
        height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Flex-flow property example</h2>
    <div class="example">
      <div style="background-color: #8ebf42;">A</div>
      <div style="background-color: #1c87c9;">B</div>
      <div style="background-color: #cccccc;">C</div>
      <div style="background-color: #666666;">D</div>
      <div style="background-color: #4c4a4a;">E</div>
      <div style="background-color: #c6c4c4;">F</div>
    </div>
  </body>
</html>

Exemplo da propriedade flex-flow com os valores "column" e "nowrap":

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example {
        width: 200px;
        height: 200px;
        border: 1px solid #c3c3c3;
        display: flex;
        flex-flow: column nowrap;
      }
      .example div {
        width: 50px;
        height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Flex-flow property example</h2>
    <div class="example">
      <div style="background-color: #8ebf42;">A</div>
      <div style="background-color: #1c87c9;">B</div>
      <div style="background-color: #cccccc;">C</div>
      <div style="background-color: #666666;">D</div>
      <div style="background-color: #4c4a4a;">E</div>
      <div style="background-color: #c6c4c4;">F</div>
    </div>
  </body>
</html>

Exemplo da propriedade flex-flow com os valores "column-reverse" e "nowrap":

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .example {
        width: 200px;
        height: 200px;
        border: 1px solid #c3c3c3;
        display: flex;
        flex-flow: column-reverse nowrap;
      }
      .example div {
        width: 50px;
        height: 50px;
      }
    </style>
  </head>
  <body>
    <h2>Flex-flow property example</h2>
    <div class="example">
      <div style="background-color: #8ebf42;">A</div>
      <div style="background-color: #1c87c9;">B</div>
      <div style="background-color: #cccccc;">C</div>
      <div style="background-color: #666666;">D</div>
      <div style="background-color: #4c4a4a;">E</div>
      <div style="background-color: #c6c4c4;">F</div>
    </div>
  </body>
</html>

Valores

ValorDescriçãoExperimente
flex-directionDefine a direção dos itens flexíveis. Os valores possíveis são: row row-reverse column column-reverse initial inheritExperimente »
flex-wrapDefine se os itens flexíveis devem quebrar ou não. Os valores possíveis são: nowrap wrap wrap-reverse initial inheritExperimente »
initialFaz a propriedade usar seu valor padrão.Experimente »
inheritHerda a propriedade do elemento pai.

Quando usar flex-flow

Use flex-flow sempre que precisar definir tanto a direção quanto o comportamento de quebra de um flex container. Um padrão comum é uma barra responsiva de itens que deve ficar em linha em telas largas, mas quebrar em múltiplas linhas em telas estreitas — flex-flow: row wrap; resolve isso em uma única declaração. Se você alterar apenas uma das duas sub-propriedades, usar a forma longa flex-direction ou flex-wrap diretamente pode tornar a intenção mais clara. Para uma visão completa de como elas se encaixam, veja o guia completo de flexbox.

Prática

Prática
O que está correto sobre a propriedade 'flex-flow' no CSS?
O que está correto sobre a propriedade 'flex-flow' no CSS?
Was this page helpful?