Grid Layout


A propriedade display: grid serve para criar estruturas bidimensionais, tabelas. Com o modelo de layout de grade, você pode organizar elementos em linhas e colunas, definir áreas específicas e controlar o espaçamento entre essas áreas.

Linhas e Colunas

Uma vez que você transformou um elemento em um contêiner grid, é possível definir o número e o tamanho das linhas e colunas usando a Propriedade grid-template-rows e Propriedade grid-template-columns.

.container {
  display: grid;
  grid-template-rows: 100px 200px; 
  /* Duas linhas de tamanhos diferentes */
  grid-template-columns: 1fr 2fr; 
  /* Duas colunas, a segunda é o dobro da largura da primeira */
}

Áreas e Posicionamento

O modelo de layout grid permite criar áreas nomeadas dentro do contêiner usando a propriedade grid-template-areas. Isso oferece uma maneira clara de posicionar elementos.

.container {
  display: grid;
  grid-template-areas:
    "header header"
    "sidebar content"
    "footer footer";
}

Espaçamento

Para controlar o espaçamento entre as linhas e colunas, você pode usar a Propriedade gap.

.container {
  display: grid;
  gap: 20px 
}

Exemplo

.container {
  display: grid;
  grid-template-rows: 100px 200px; 
  grid-template-columns: 1fr 2fr;
  grid-template-areas:
    "header header"
    "sidebar content"
    "footer footer";
  grid-row-gap: 10px;
  grid-column-gap: 20px;
  justify-items: center;
  align-items: center;
}
<div class="container">
  <div class="item" style="grid-area: header;">Header</div>
  <div class="item" style="grid-area: sidebar;">Sidebar</div>
  <div class="item" style="grid-area: content;">Content</div>
  <div class="item" style="grid-area: footer;">Footer</div>
</div>

No exemplo acima, a classe .container é o contêiner de grade, e os elementos filhos são posicionados nas áreas específicas que definimos usando grid-template-areas. O resultado é um layout claro e bem estruturado.

Referências