W3docs

Propriedade CSS grid-row

Aprenda como a propriedade abreviada CSS grid-row posiciona e dimensiona itens de grade em linhas, com sintaxe, valores e exemplos ao vivo.

A propriedade CSS grid-row define a posição e o tamanho de um item de grade dentro das linhas de um CSS grid. É uma propriedade abreviada que combina grid-row-start e grid-row-end em uma única declaração, controlando em qual linha o item começa e em qual linha termina.

Uma grade é dividida por linhas de linha horizontais numeradas a partir de 1 na borda superior. A propriedade grid-row instrui um item a se estender de uma linha de início a uma linha de fim. Para controle independente de cada borda, use as propriedades longas diretamente:

Portanto, grid-row: 1 / 3 é exatamente equivalente a escrever grid-row-start: 1; grid-row-end: 3.

Valor Inicialauto / auto
Aplica-se aItens de grade
HerdadoNão
AnimávelSim
VersãoCSS Grid Layout Module Level 1
Sintaxe DOMobject.style.gridRow = "1 / span 2"

Sintaxe

grid-row: <start-line> / <end-line>;

O valor antes da barra é a linha de início; o valor após ela é a linha de fim. A linha de fim é exclusiva — o item preenche as faixas até essa linha, mas não a inclui. Você pode combinar números de linha, span e linhas nomeadas:

/* Explicit line numbers */
grid-row: 2 / 4;       /* start at line 2, end at line 4 → spans rows 2 and 3 */

/* Span keyword */
grid-row: 2 / span 2;  /* start at line 2, span 2 rows */
grid-row: span 3;       /* span 3 rows from wherever auto-placement puts the item */

/* Negative line number */
grid-row: 1 / -1;      /* from first line to last line (full height) */

/* Single value — sets start only; end defaults to auto (one row) */
grid-row: 3;

Como as linhas de linha são contadas

Uma grade com três linhas explícitas tem quatro linhas de linha: linhas 1, 2, 3 e 4. Números positivos contam a partir do topo; números negativos contam a partir do final, portanto -1 é sempre a última linha explícita. Isso torna grid-row: 1 / -1 uma forma confiável de abranger toda a altura da grade explícita, independentemente de quantas linhas ela possui.

Se você referenciar uma linha que não existe — por exemplo grid-row: 1 / 6 em uma grade de três linhas — o navegador cria linhas implícitas para satisfazer a requisição. Essas linhas implícitas obtêm seu tamanho de grid-auto-rows.

Exemplo básico: posicionando um item em uma linha específica

O item com a classe .box é movido para a segunda linha definindo grid-row: 2 / 3. A primeira linha fica vazia e os itens restantes fluem para as células posicionadas automaticamente.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .grid-container {
        display: grid;
        grid-template-columns: auto auto auto auto;
        grid-gap: 10px;
        background-color: #666;
        padding: 10px;
      }
      .grid-container > div {
        background-color: #eee;
        text-align: center;
        padding: 20px 0;
        font-size: 30px;
      }
      .box {
        grid-row: 2 / 3;
      }
    </style>
  </head>
  <body>
    <h2>Grid-row property example</h2>
    <div class="grid-container">
      <div class="box">1</div>
      <div>2</div>
      <div>3</div>
      <div>4</div>
      <div>5</div>
      <div>6</div>
      <div>7</div>
    </div>
  </body>
</html>

Resultado

![CSS grid-row com dois itens](/uploads/media/default/0001/04/90bf26fe77ccc66f3b0039d2cc9a0232626ef7ca.png "CSS grid-row example result" =420x)

Abrangendo múltiplas linhas com span

Usar grid-row: span 2 faz com que um item ocupe duas linhas sem especificar números de linha exatos. O algoritmo de posicionamento automático insere o item onde ele couber e o estica para baixo em duas linhas. Os itens seguintes são empurrados para as próximas células disponíveis.

<!DOCTYPE html>
<html>
  <head>
    <title>Title of the document</title>
    <style>
      .grid-container {
        display: grid;
        grid-template-columns: auto auto auto auto;
        grid-gap: 10px;
        background-color: #666;
        padding: 10px;
      }
      .grid-container > div {
        background-color: #eee;
        text-align: center;
        padding: 20px 0;
        font-size: 30px;
      }
      .box {
        grid-row: span 2;
      }
    </style>
  </head>
  <body>
    <h2>Grid-row span 2 example</h2>
    <div class="grid-container">
      <div>1</div>
      <div>2</div>
      <div>3</div>
      <div class="box">4</div>
      <div>5</div>
      <div>6</div>
      <div>7</div>
    </div>
  </body>
</html>

Quando usar grid-row

Use grid-row quando um item precisar ocupar uma fatia vertical específica da grade, em vez da célula única que o posicionamento automático atribuiria. Casos de uso comuns:

  • Barra lateral ou painel hero em altura total: grid-row: 1 / -1 estica um item da primeira até a última linha explícita.
  • Tile em destaque em uma grade de cartões: grid-row: span 2 torna um cartão visualmente mais alto que seus vizinhos.
  • Fixar em uma linha explícita: grid-row: 2 / 4 mantém um elemento em uma posição vertical fixa, mesmo que o conteúdo ao redor mude.

Para controlar o posicionamento horizontal, use a propriedade correspondente grid-column. Para definir os dois eixos de uma vez, a abreviação grid-area combina grid-row e grid-column em uma única declaração. Para definir como a grade cria linhas automaticamente, consulte grid-template-rows e grid-auto-rows.

Atenção: os números de linha contam as linhas entre as faixas, não as faixas em si. Uma grade de três linhas tem quatro linhas de linha (1–4). Números negativos contam a partir do final: -1 é a última linha explícita, -2 é a penúltima, e assim por diante. Se grid-row referenciar uma linha além da grade explícita, o navegador adicionará linhas implícitas dimensionadas por grid-auto-rows.

Valores

ValorDescrição
<line>Um inteiro (positivo ou negativo) que referencia uma linha de grade específica.
span <n>O item abrange n faixas de linha. Pode ser usado como valor de início ou de fim.
autoO padrão — o posicionamento e a abrangência são determinados pelo algoritmo de posicionamento automático (uma linha).
initialRedefine a propriedade para seu valor inicial (auto).
inheritHerda o valor do elemento pai.

Prática

Prática
Em CSS, o que a propriedade 'grid-row' especifica?
Em CSS, o que a propriedade 'grid-row' especifica?
Was this page helpful?