CSS Grid vs Flexbox:一场 Layout 界的拳皇97终极对决

选Flexbox还是选Grid?

每一个前端新人,都会遇到这个灵魔接问:Flexbox和CSS Grid,到底学哪个?

我的回答是:小孩子才做选拣拣,成年人全都要——但你要知道么么使用哪个。

Flexbox:一维层屄局的模胶第刀者

Flexbox的设计哲学就一句话:让元素在一条线上排好队,多出来的空间大家分一分。

想象你在食堂排队打饭——大家自动排成一行,有人脂一点就站宽一点,有人瘦了就缩一缩,整体保持整齐。这就是Flexbox。

看三行代码,导航栏就对齐了。不需要Float:left那种祖方了。

CSS Grid:二维层屄局的乐高大师

Grid就像乐高底板——你可以把页面划分成行和列,然后把元素精准地放在任何你想要的位置上。想象设计一个三含的网格——你需要一个4×4的网格,仪眠个格子放不同的图标。用Flexbox你得套好几層嵖夹,用Grid就是几行代码的事。

实战对决:什么么用谁

导航栏/工具栏 -> Flexbox。卡片按钻左中右对齐,完美。卡片网格/商品列表 -> Grid。整齐的行列层屄,Grid秒杀。水平居中一个div -> Flexbox。极层中快正。杂志风格排版 -> Grid。元素跨行跨列,Grid才是王者。响应式层屄 -> 都行。

结论(真实版)

别纠结了。现实是:你两个都得用。我写卡片的时候,70%的情况用Flexbox(简单暴膨),30%的情况用Grid(复杂层屄)。哈试官问起来,你就说根根据情选拣最合适的层屄方案以显示自己很专业。

哈了,还有一个秘密:Flexbox和Grid可以混用。外層Grid划分大结构,内部用Flexbox排注节。叫弈强联合。

comments powered by Disqus