Propriedade CSS grid-gap
A propriedade CSS grid-gap define o tamanho do espaço entre linhas e colunas de um layout grid. Veja essa propriedade em ação.
A propriedade grid-gap define o tamanho do espaço (gutter) entre as linhas e colunas de um layout grid. O espaço é a área vazia entre as faixas do grid — ele nunca adiciona espaço nas bordas externas do grid, portanto o padding do próprio container ainda controla a margem externa.
grid-gap é uma abreviação de duas propriedades individuais:
- grid-row-gap — o tamanho do espaço entre linhas.
- grid-column-gap — o tamanho do espaço entre colunas.
grid-gap vs. gap
A propriedade padrão gap substituiu grid-gap. As duas se comportam de forma idêntica dentro de um container grid, mas grid-gap é agora considerada legada: ela existe principalmente para navegadores mais antigos que lançaram a versão com prefixo grid antes de gap sem prefixo ser padronizado. Os navegadores modernos ainda suportam grid-gap como alias, portanto folhas de estilo existentes continuam funcionando.
Para novos projetos, prefira gap — ele funciona em layouts grid e Flexbox, enquanto grid-gap só se aplicava a grids:
/* Legacy (grid only) */
.grid { display: grid; grid-gap: 20px 40px; }
/* Modern, preferred */
.grid { display: grid; gap: 20px 40px; }| Valor inicial | 0 |
|---|---|
| Aplicado a | Containers grid. |
| Herdado | Não. |
| Animável | Sim. grid-gap é animável. |
| Versão | CSS Grid Layout Module Level 1 |
| Sintaxe DOM | object.style.gridGap = "30px 70px"; |
Sintaxe
Propriedade CSS grid-gap
grid-gap: <row-gap> <column-gap>;A propriedade aceita um ou dois valores de comprimento:
- Um valor define o espaço de linha e o espaço de coluna com o mesmo tamanho.
- Dois valores definem primeiro o espaço de linha e depois o espaço de coluna (
grid-gap: 20px 40px;significa um espaço de 20px entre linhas e um de 40px entre colunas).
Cada valor pode ser qualquer comprimento não negativo (px, em, rem, etc.) ou uma porcentagem. As palavras-chave initial e inherit também são válidas.
Exemplo da propriedade grid-gap:
Exemplo de um container grid com a propriedade grid-gap
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto;
grid-gap: 60px;
background-color: #ccc;
padding: 10px;
}
.grid-container > div {
background-color: #666;
text-align: center;
padding: 20px 0;
font-size: 30px;
}
</style>
</head>
<body>
<h2>Grid-gap property example</h2>
<div class="grid-container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
</div>
</body>
</html>Resultado

Exemplo da propriedade grid-gap especificada em porcentagens:
Um espaço em porcentagem é calculado com base nas dimensões do próprio container grid — o espaço de coluna é uma porcentagem da largura do container, e o espaço de linha é uma porcentagem da sua altura. Porcentagens são úteis para layouts fluidos, mas fazem o gutter crescer junto com o container, por isso comprimentos fixos costumam ser mais previsíveis.
Exemplo de um container grid onde o espaço de grid é definido por porcentagens
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto;
grid-gap: 20%;
background-color: #ccc;
padding: 10px;
}
.grid-container > div {
background-color: #666;
text-align: center;
padding: 20px 0;
font-size: 30px;
}
</style>
</head>
<body>
<h2>Grid-gap property example</h2>
<div class="grid-container">
<div>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 da propriedade grid-gap com dois valores:
Quando você passa dois valores, o primeiro define o espaço de linha e o segundo define o espaço de coluna. Aqui as linhas são separadas por 20px e as colunas por 80px:
Exemplo de uma propriedade CSS grid-gap
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
.grid-container {
display: grid;
grid-template-columns: auto auto auto auto;
grid-gap: 20px 80px;
background-color: #ccc;
padding: 10px;
}
.grid-container > div {
background-color: #666;
text-align: center;
padding: 20px 0;
font-size: 30px;
}
</style>
</head>
<body>
<h2>Grid-gap property example</h2>
<div class="grid-container">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
<div>7</div>
<div>8</div>
<div>9</div>
<div>10</div>
<div>11</div>
<div>12</div>
</div>
</body>
</html>Valores
| Valor | Descrição | Experimente |
|---|---|---|
| grid-row-gap | Especifica o tamanho do espaço entre as linhas em um layout grid. O valor padrão é 0. Ao usar a sintaxe de dois valores, corresponde ao primeiro valor. | |
| grid-column-gap | Especifica o tamanho do espaço entre as colunas em um layout grid. O valor padrão é 0. Ao usar a sintaxe de dois valores, corresponde ao segundo valor. | Experimente » |
| initial | Faz a propriedade usar seu valor padrão. | |
| inherit | Herda a propriedade do elemento pai. |
Suporte de navegadores
grid-gap é suportado em todos os navegadores modernos. Como é um alias para a propriedade padrão gap, geralmente não é necessário usar os dois. Se você precisar suportar implementações de grid muito antigas, pode usar grid-gap para elas e gap para todo o resto:
.grid {
display: grid;
grid-gap: 20px; /* fallback for legacy browsers */
gap: 20px; /* standard property wins where supported */
}Propriedades relacionadas
- grid-row-gap e grid-column-gap — as propriedades individuais que
grid-gapcombina. - grid — a abreviação para um layout grid completo.
- grid-template-columns — define as colunas entre as quais os espaços ficam.