5.9 Grid
CSS Grid é um sistema de layout bidimensional (linhas e colunas) que permite criar designs complexos de forma fácil e organizada. É uma das formas mais poderosas de criar layouts em CSS moderna.
⚡ Ativação
Para usar Grid, transforme um elemento em um container grid:
cssCopyDownload
.container {
display: grid; /* ✨ Isso ativa o Grid Layout! */
}
🛠️ Propriedades Principais com Exemplos
1️⃣ grid-template-columns
& grid-template-rows
grid-template-columns
& grid-template-rows
Define o tamanho e quantidade de colunas/linhas.
📌 Exemplo 1: Grid 3x2
cssCopyDownload
.container {
display: grid;
grid-template-columns: 100px 200px 100px; /* 3 colunas 📏 */
grid-template-rows: 50px 100px; /* 2 linhas 📐 */
}
Saída:
textCopyDownload
| 100px | 200px | 100px |
| 50px | | |
| 100px | | |
📌 Exemplo 2: Unidade fr
(fração) – Divisão flexível
cssCopyDownload
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr; /* 🎯 Coluna do meio é 2x maior! */
}
2️⃣ gap
(espaçamento entre células)
gap
(espaçamento entre células)Controla o espaço entre linhas e colunas.
📌 Exemplo:
cssCopyDownload
.container {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
gap: 20px; /* 📦 Espaço entre tudo */
row-gap: 10px; /* ↔️ Espaço entre linhas */
column-gap: 30px; /* ↕️ Espaço entre colunas */
}
3️⃣ grid-column
& grid-row
grid-column
& grid-row
Controla onde os itens começam e terminam no grid.
📌 Exemplo: Item que ocupa 2 colunas
cssCopyDownload
.item {
grid-column: 1 / 3; /* 🚀 Começa na linha 1 e termina na 3 */
/* Equivalente a: */
grid-column-start: 1;
grid-column-end: 3;
}
🏆 Exemplo Prático Completo (Layout Básico)
htmlCopyDownloadRun
<div class="grid-container">
<div class="header">📌 Cabeçalho</div>
<div class="sidebar">📋 Menu</div>
<div class="content">📦 Conteúdo</div>
<div class="footer">©️ Rodapé</div>
</div>
cssCopyDownload
.grid-container {
display: grid;
grid-template-columns: 200px 1fr; /* 🎨 Coluna fixa + flexível */
grid-template-rows: 80px 1fr 60px; /* 📏 Alturas definidas */
gap: 15px; /* 📌 Espaçamento */
height: 100vh; /* 🖥️ Ocupa toda a tela */
}
.header {
grid-column: 1 / 3; /* 🔥 Ocupa todas as colunas! */
background: #3498db;
color: white;
}
.sidebar {
grid-row: 2 / 3;
background: #2ecc71;
}
.content {
grid-row: 2 / 3;
grid-column: 2 / 3;
background: #f1c40f;
}
.footer {
grid-column: 1 / 3;
background: #e74c3c;
color: white;
}
🚀 Recursos Avançados
🔄 Função repeat()
(Evita repetição)
repeat()
(Evita repetição)cssCopyDownload
.container {
grid-template-columns: repeat(3, 1fr); /* 🔁 3 colunas de tamanho igual */
}
🗺️ Áreas de Grid (Layout visual intuitivo)
cssCopyDownload
.container {
grid-template-areas:
"header header" /* 📌 Cabeçalho ocupa 2 colunas */
"sidebar content" /* 📋 Menu + Conteúdo */
"footer footer"; /* ©️ Rodapé ocupa 2 colunas */
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.content { grid-area: content; }
.footer { grid-area: footer; }
Last updated