← 返回文章列表
CSS·512 次阅读

CSS Grid 二维布局实战

CSS Grid 二维布局实战

Grid 是真正的二维布局系统,能同时控制行和列,做整页布局比 Flex 更直接。

三栏 + 页头页脚

.layout {
  display: grid;
  grid-template-columns: 200px 1fr 200px; /* 左固定 中自适应 右固定 */
  grid-template-rows: 60px 1fr 40px;
  gap: 16px;
  min-height: 100vh;
}
.header { grid-column: 1 / 4; } /* 横向占满三列 */
.footer { grid-column: 1 / 4; }

fr 是剩余空间分配单位,多个 fr 按比例分;repeat(3, 1fr) 是重复三列的简写。

区域命名:像画图一样布局

.layout {
  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;
}
.header { grid-area: header; }
.sidebar { grid-area: sidebar; }
.main { grid-area: main; }

模板字符串直接画出页面结构,调整布局只需改这一处,可读性极强。

实用技巧

.cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
/* 卡片网格:容器多宽就放多少列,每列最小 240px,自动响应式,无需媒体查询 */

子项定位:grid-column: span 2 让某个卡片跨两列;justify-items/align-items 控制单元格内对齐。

Grid 还是 Flex

  • 只沿一个方向排列(导航栏、按钮组)→ Flex
  • 需要同时规划行列、或整块页面骨架 → Grid
  • 二者嵌套使用:Grid 搭页面骨架,内部组件用 Flex,是最顺手的组合

看到这里了?如果这篇文章帮到过你

请我喝瓶可乐就好 🥤

收款码

评论0 条

还没有评论,来抢沙发~

发表评论

评论需审核后显示

© 2026 许冬博客 · 专注 JS 技术分享

·RSS 订阅·Powered by Nuxt 4