W3docs

Propriedade CSS order

Use a propriedade CSS order para definir a ordem de um elemento em um contêiner flexível. Veja os valores e exemplos práticos.

A propriedade order controla a posição de um item flex ou grid ao longo de sua trilha, permitindo alterar a ordem visual dos itens sem modificar a ordem no HTML. Ela faz parte do módulo Flexible Box Layout e é uma das propriedades do CSS3.

Por padrão, cada item possui order: 0, portanto os itens aparecem na ordem do código-fonte. Os itens são dispostos em ordem crescente de valor order; itens com o mesmo order mantêm a ordem do código-fonte entre si. Isso torna o order útil para tarefas como mover uma barra lateral antes do conteúdo principal em telas largas, ou reordenar cartões dentro de um layout flexbox ou CSS Grid, sem alterar a marcação.

Informação

order afeta apenas filhos diretos de um contêiner flex ou grid. Se o elemento não for um item flex ou grid, order não terá efeito.

Como os valores funcionam

order aceita qualquer número inteiro, incluindo valores negativos:

  • Um item com order menor aparece primeiro; um order maior aparece depois.
  • Como o valor inicial é 0, definir um item como -1 é uma forma rápida de movê-lo antes de todos os outros.
  • Itens que compartilham o mesmo valor de order voltam à ordem do DOM, portanto geralmente você só precisa definir order nos poucos itens que deseja mover.
.first  { order: -1; } /* moves before all default (0) items */
.middle { order:  0; } /* default, can be omitted */
.last   { order:  1; } /* moves after all default items */

Considerações de acessibilidade

order cria uma desconexão entre a exibição visual do conteúdo e sua ordem no DOM. A reordenação visual não altera o DOM, portanto não modifica a ordem de leitura para leitores de tela nem a ordem de tabulação para usuários de teclado. Alguém navegando pela página com a tecla Tab ou usando um leitor de tela seguirá a ordem original do código-fonte, e não o layout reordenado — o que pode ser confuso se os dois diferirem significativamente. Mantenha o DOM em uma ordem de leitura lógica e use order apenas para ajustes de apresentação.

Valor inicial0
Aplica-se aItens flex e itens grid.
HerdadoNão.
AnimávelNão. A propriedade order é discreta e não é animável.
VersãoCSS3
Sintaxe DOMObject.style.order = "4";

Sintaxe

Sintaxe CSS de order

order: number | initial | inherit;

Exemplo da propriedade order:

Exemplo de código CSS com order

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      #example {
        width: 400px;
        height: 200px;
        border: 1px solid #000;
        display: flex;
      }
      #example div {
        width: 100px;
        height: 100px;
        line-height: 100px;
        text-align: center;
        color: #fff;
        font-size: 30px;
        font-family: sans-serif;
      }
      div#blue {
        order: 2;
      }
      div#green {
        order: 3;
      }
      div#grey {
        order: 1;
      }
      div#yellow {
        order: 4;
      }
    </style>
  </head>
  <body>
    <h2>Order property example</h2>
    <div id="example">
      <div style="background-color: #1c87c9;" id="blue">1</div>
      <div style="background-color: #8ebf42;" id="green">2</div>
      <div style="background-color: #666;" id="grey">3</div>
      <div style="background-color: #f4f442;" id="yellow">4</div>
    </div>
  </body>
</html>

Resultado

Propriedade order

Exemplo da propriedade order aplicada à classe container:

Exemplo CSS de order com flexbox

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .container {
        padding: 0;
        margin: 0;
        list-style: none;
        display: flex;
        flex-flow: row wrap;
      }
      .box:nth-of-type(1) {
        order: 4;
      }
      .box:nth-of-type(2) {
        order: 1;
      }
      .box:nth-of-type(3) {
        order: 3;
      }
      .box:nth-of-type(4) {
        order: 5;
      }
      .box:nth-of-type(5) {
        order: 2;
      }
      .box {
        background: #1c87c9;
        padding: 5px;
        width: 100px;
        height: 100px;
        margin: 5px;
        line-height: 100px;
        color: #eee;
        font-weight: bold;
        font-size: 2em;
        text-align: center;
      }
    </style>
  </head>
  <body>
    <h2>Order property</h2>
    <ul class="container">
      <li class="box">1</li>
      <li class="box">2</li>
      <li class="box">3</li>
      <li class="box">4</li>
      <li class="box">5</li>
    </ul>
  </body>
</html>

Em ambos os exemplos, a propriedade order reorganiza os itens na tela enquanto o HTML permanece em sua sequência original — cada item recebe simplesmente o número que o posiciona onde você deseja.

order é uma das várias ferramentas de alinhamento do flexbox. Combine-o com flex-direction para definir o eixo principal, justify-content para espaçar os itens ao longo desse eixo e align-items para alinhá-los no eixo transversal.

Valores

ValorDescrição
numberDefine a ordem do item flex ou grid no contêiner. O valor padrão é 0.
initialFaz a propriedade usar seu valor padrão.
inheritHerda a propriedade do elemento pai.

Prática

Prática
O que a propriedade CSS 'order' faz?
O que a propriedade CSS 'order' faz?
Was this page helpful?