Prática Grid CSS
Sistema de Grid de 12 Colunas
O grid de 12 colunas é um sistema de layout clássico no desenvolvimento web. Veja como implementá-lo com CSS Grid:
Exemplo
HTML
<style>
.grid-12 {
display: grid;
grid-template-columns: repeat(12, 1fr);
gap: 20px;
}
.g-col-3 { grid-column: span 3; }
.g-col-4 { grid-column: span 4; }
.g-col-6 { grid-column: span 6; }
.g-col-8 { grid-column: span 8; }
.g-col-12 { grid-column: span 12; }
.grid-item {
background: #e8f4f8;
border: 1px solid #3498db;
padding: 16px;
text-align: center;
border-radius: 4px;
}
</style>
<div class="grid-12">
<div class="grid-item g-col-3">3 colunas</div>
<div class="grid-item g-col-3">3 colunas</div>
<div class="grid-item g-col-3">3 colunas</div>
<div class="grid-item g-col-3">3 colunas</div>
</div>
Padrões de Layout Comuns
Layout Santo Graal
O padrão de layout de página mais comum:
Exemplo
HTML
<style>
.holy-grail {
display: grid;
grid-template-areas:
"header header header"
"sidebar main aside"
"footer footer footer";
grid-template-columns: 200px 1fr 200px;
grid-template-rows: 60px 1fr 40px;
min-height: 100vh;
gap: 10px;
}
.hg-header { grid-area: header; background: #2c3e50; color: white; }
.hg-sidebar { grid-area: sidebar; background: #34495e; color: white; }
.hg-main { grid-area: main; background: #ecf0f1; }
.hg-aside { grid-area: aside; background: #34495e; color: white; }
.hg-footer { grid-area: footer; background: #2c3e50; color: white; }
.holy-grail > * { padding: 20px; display: flex; align-items: center; justify-content: center; }
</style>
<div class="holy-grail">
<header class="hg-header">Cabeçalho</header>
<aside class="hg-sidebar">Barra Lateral</aside>
<main class="hg-main">Conteúdo Principal</main>
<aside class="hg-aside">Lateral</aside>
<footer class="hg-footer">Rodapé</footer>
</div>
Grid de Cards Responsivo
Exemplo
HTML
<style>
.card-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 20px;
padding: 20px;
}
.card {
background: white;
border-radius: 8px;
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
padding: 20px;
}
</style>
<div class="card-grid">
<div class="card">Card 1</div>
<div class="card">Card 2</div>
<div class="card">Card 3</div>
<div class="card">Card 4</div>
</div>
❓ Perguntas Frequentes
Q Por que sistemas de grid usam 12 colunas?
R 12 é divisível por 2, 3, 4 e 6 — máxima flexibilidade. Você pode criar proporções 1/2, 1/3, 1/4, 1/6, 2/3, 3/4. Bootstrap e outros frameworks usam grids de 12 colunas — é o padrão da indústria.
Q Grid escrito à mão vs grid Bootstrap?
R Escrever à mão ajuda a entender os princípios; Bootstrap é uma implementação empacotada. Projetos reais usam Bootstrap para eficiência, mas entender princípios ajuda quando frameworks não atendem necessidades específicas.
Q Grid Flex vs Grid Grid — qual é melhor?
R Cada um tem pontos fortes. Flex serve para arranjos unidimensionais mas não pode alinhar entre linhas. Grid tem capacidades bidimensionais mais fortes. Para distribuição simples de linhas, Flex é suficiente; para alinhamento de linhas de grid, use Grid.
📖 Resumo
- Sistemas de grid são uma solução de layout clássica testada pelo tempo
- Implementar um grid de 12 colunas com Flexbox não é complexo — a chave é entender larguras percentuais e flex-wrap
- 12 colunas oferecem combinações flexíveis com breakpoints responsivos
- Embora muitos projetos usem grids Bootstrap ou Tailwind, implementar uma vez por si mesmo realmente ensina os princípios subjacentes
📝 Exercícios
- Implemente um sistema de grid completo de 12 colunas, crie uma página HTML mostrando diferentes combinações de colunas (3-3-3-3, 4-4-4, 2-8-2, etc.).
- Use grid responsivo para mostrar coluna única no mobile, duas no tablet, quatro no desktop.
- Use
col-offset-3para centralizar um bloco de conteúdo na página. - Re-implemente o grid de 12 colunas usando Grid, compare diferenças de código.



