Propriedade CSS grid-area
A propriedade CSS grid-area define o tamanho e a localização dos itens nas linhas do contêiner grid. Veja exemplos e experimente.
A propriedade grid-area é usada para especificar o tamanho e a localização do item de grid dentro do contêiner grid. É uma propriedade abreviada para as seguintes propriedades, aplicadas na ordem: row-start, column-start, row-end, column-end:
- grid-row-start, especificando a linha na qual o item deve começar.
- grid-column-start, especificando a coluna na qual o item deve começar.
- grid-row-end, especificando a linha na qual o item deve terminar.
- grid-column-end, especificando a coluna na qual o item deve terminar.
A propriedade grid-area também especifica um nome para um item de grid. Em seguida, os itens de grid nomeados podem ser referenciados pela propriedade grid-template-areas do contêiner grid.
| Valor Inicial | auto / auto / auto / auto |
|---|---|
| Aplica-se a | Itens de grid. |
| Herdado | Não. |
| Animável | Não. |
| Versão | CSS Grid Layout Module Level 1 |
| Sintaxe DOM | element.style.gridArea = "1 / 2 / span 2 / span 3"; |
Sintaxe
grid-area: <grid-line> / <grid-line> / <grid-line> / <grid-line> | <custom-ident> | initial | inherit;Nota: A abreviação aceita de 1 a 4 valores. Se menos de 4 valores forem fornecidos, os valores ausentes assumem o padrão
auto. A palavra-chavespanpode ser usada para os valores finais (ex.:span 2).
Exemplo
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.box1 {
grid-area: header;
}
.box2 {
grid-area: left;
}
.box3 {
grid-area: main;
}
.box4 {
grid-area: right;
}
.box5 {
grid-area: footer;
}
.grid-container {
display: grid;
grid-template-areas: 'header header header header header header' 'left main main main right right' 'left footer footer footer footer footer';
gap: 5px;
background-color: #555;
padding: 10px;
}
.grid-container > div {
background-color: #ccc;
text-align: center;
padding: 30px 0;
font-size: 30px;
}
</style>
</head>
<body>
<h2>Grid-area property example</h2>
<p>You can use the grid-area property to name grid items.</p>
<div class="grid-container">
<div class="box1">Header</div>
<div class="box2">Left</div>
<div class="box3">Main</div>
<div class="box4">Right</div>
<div class="box5">Footer</div>
</div>
</body>
</html>Resultado

No exemplo a seguir, o elemento box1 recebe o valor itemname, que abrange todas as cinco colunas definidas no template de grid. Note que, como o grid define apenas 5 colunas, os itens restantes fluem automaticamente para a próxima linha (posicionamento implícito no grid).
Você também pode posicionar um item pelos números das linhas do grid em vez de um nome. Os quatro valores seguem a ordem row-start / column-start / row-end / column-end, e a palavra-chave span indica ao item quantas faixas ele deve cobrir. No exemplo abaixo, grid-area: 1 / 1 / 3 / 3; faz o item começar na primeira linha e coluna e terminar na terceira linha e coluna, cobrindo assim uma área 2×2.
Exemplo com números de linha do grid
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.box1 {
/* row-start / column-start / row-end / column-end */
grid-area: 1 / 1 / 3 / 3;
background-color: #8ebf42;
}
.grid-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-auto-rows: 60px;
gap: 5px;
background-color: #555;
padding: 5px;
}
.grid-container > div {
background-color: #eee;
text-align: center;
font-size: 20px;
}
</style>
</head>
<body>
<h2>Placing an item with line numbers</h2>
<div class="grid-container">
<div class="box1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
</div>
</body>
</html>Exemplo com valor itemname
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.box1 {
grid-area: itemname;
}
.grid-container {
display: grid;
grid-template-columns: repeat(5, 1fr);
grid-template-areas: 'itemname itemname itemname itemname itemname';
gap: 5px;
background-color: #8ebf42;
padding: 5px;
}
.grid-container > div {
background-color: #eee;
text-align: center;
padding: 20px 0;
font-size: 20px;
}
</style>
</head>
<body>
<h2>Grid-area property example</h2>
<div class="grid-container">
<div class="box1">1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
</body>
</html>Valores
| Valor | Descrição |
|---|---|
<grid-line> | Especifica a linha do grid onde o item começa ou termina. Aceita um número, span <number> ou auto. |
custom-ident | Especifica um nome para o item (usado com grid-template-areas). |
initial | Define a propriedade com seu valor padrão. |
inherit | Herda a propriedade do elemento pai. |