CSS Grid 是现代布局的核心工具。这篇文章用图解的方式讲清楚 Grid 的所有核心概念。
为什么需要 Grid
Flexbox 是一维布局(横向或纵向),Grid 是二维布局(同时控制行和列)。当你需要复杂的网格结构时,Grid 是唯一正确的选择。
核心概念
.container {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: auto 200px;
gap: 20px;
}
这会创建一个 3 列 2 行的网格,中间列宽度是两侧的两倍。
实战:经典三栏布局
<div class="layout">
<header>Header</header>
<nav>Sidebar</nav>
<main>Content</main>
<footer>Footer</footer>
</div>
.layout {
display: grid;
grid-template-areas:
"header header"
"sidebar content"
"footer footer";
grid-template-columns: 200px 1fr;
grid-template-rows: auto 1fr auto;
min-height: 100vh;
}
Grid 的
grid-template-areas是最直观的布局语法,像画图一样定义结构。
总结
Grid 不是 Flexbox 的替代品,而是补充。一维用 Flex,二维用 Grid,这是现代 CSS 布局的黄金法则。
— howdo
2026.06.15