CSS Grid vs Flexbox选困难症患者的终极指南

前端技术 Feb 24, 2025

选哪个?这是一个问题

每个前端开发者在面对页面布局时,都会陷入一个灵魂拷问:到底用 Flexbox 还是 Grid?

这就像纠结中午吃黄焉鸡还是麻辣烫——两个都好吃,但用错了场合就尴尬了。让我用人话帮你理清思路。

⚡ Flexbox:一维布局之王

Flexbox 的核心理念就一句话:把元素排成一行或一列,然后让它们学会自己分配空间。它就像军训时的队列教官,喊一声“向右看齐”——大家自动对齐,多余空间均匀分配。

什么时候用 Flexbox?

  • 导航栏(Logo 在左,菜单在右)
  • 水平居中对齐(“我终于让 div 居中啦!”)
  • 卡片列表(每行自适应数量)
  • 任何“沿着一个方向排列”的场景
.nav { display: flex; justify-content: space-between; align-items: center; }

◻ CSS Grid:二维布局之神

Grid 就像你在 Excel 里画表格——先确定行和列,然后把元素塞进去。它适合那些“看起来像个网格”的布局。

什么时候用 Grid?

  • 整个页面的骨架布局— header + sidebar + main + footer
  • 图片墙 / 瀑布流
  • 仪表盘 / 后台管理面板
  • 任何“横竖都要对齐”的场景
.dashboard { display: grid; grid-template-columns: 250px 1fr; gap: 16px; }

💡 黄金法则

简单粗暴版:如果布局是一维的,用 Flexbox;如果是二维的,用 Grid。

最后送你一句前端篭言:Flexbox 做组件内部,Grid 做页面整体。记住了!

Tags