CSS Grid和 Flexbox的世纪大战:到底谁才是布局之王?

前端技术 Jun 18, 2026

当布局遇上选择困难症

每个前端新人都会在某个月黑风高的夜晚,对着屏幕发出灵魂拷问:Grid 还是 Flexbox? 这问题堪比“甜粽还是咸粽”——两边都有人站队,两边都有道理,选错了还会被大佬 diss。

Flexbox:一维的暴脾气

Flexbox 的全称是 Flexible Box(弹性盒子),它的核心思想就是:在一行或一列里,让元素自己挤来挤去

想象你在早高峰的地铁里——大家挤成一排,有人胖就占多点地方,有人瘦就缩着。这就是 Flexbox 的精神:一维排列,自动伸缩

.container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

适合场景:导航栏、按钮组、卡片列表、居中大法。

Grid:二维的强迫症

CSS Grid 则是 二维布局系统,它把页面像 Excel 表格一样切分成行和列。

如果说 Flexbox 是地铁,那 Grid 就是宜家的样板间——每一格都规划好了位置。

.container {
  display: grid;
  grid-template-columns: 1fr 2fr 1fr;
  gap: 16px;
}

适合场景:页面骨架布局、图片画廊、仪表盘。

所以到底选哪个?

一行或一列 → Flexbox;行和列都有 → Grid;不确定 → 先用 Flexbox。

记住:Flexbox 和 Grid 不是仇人,是搭档

Tags