你可能会说
排成三列,每列一样宽,间距统一
把页面切成格子,想放哪格放哪格的布局
看一眼它长什么样
筛选条件
近 7 天
全部渠道
今日访问
1,284
新增用户
96
待处理
12
上面这些交互全部由 CSS 完成,没有加载任何脚本 —— 和真实产品里的组件是同一个道理。
大白话解释
网格布局是先把页面横竖切成一张表,再决定每块内容放在哪一格、占几格。它横竖两个方向都管,比只能管一行的弹性布局更能干。
像装修前先在墙上画好瓷砖格子,电视占三格宽、柜子占两格宽,哪块空着哪块满,一眼看得清清楚楚。
后台管理页、图片墙、数据仪表盘这类「一堆方块整齐排开」的界面,基本都是它的地盘。
什么时候会遇到
- 做一个图片墙,不管几张图都要排成整齐的方阵。
- 后台首页摆一堆数据卡片,大屏两列、手机一列。
- 页面要左边导航、右边内容、上面还有个顶栏,用网格划区域最清楚。
- 布局牵扯到列宽对齐,弹性布局怎么调都对不齐。
- 设计稿里元素横竖都卡在同几条线上,需要按格子定位。
- 用 Tailwind 写的那几个以 grid 开头的类名,就是在用它。
可以直接对 Agent 说
「把后台首页改成网格布局:手机一列、平板两列、大屏三列,卡片间距 16px,高度自动等高,用网格布局实现。」
「这个页面要左侧 240px 固定导航、右侧内容自适应、顶部 64px 顶栏,用网格的区域命名写法,把每块区域名字标清楚。」
「这个图片墙现在用弹性布局排的,最后一行总是不齐。帮我改成按格子排,列宽自适应,最后一行也能对齐。」
正文里带下划线的词,是本站其它词条的入口;这一篇自动链了 3 个相关术语。
最容易想岔的地方
常见的错误理解: 网格布局比弹性布局新,所以应该全部换成它
更准确的理解: 一个管二维排布,一个管一维排布。一行按钮用网格反而绕,整页版式用弹性布局会写得很难受
常见的错误理解: 网格的列宽写死像素最省事,要调再改
更准确的理解: 写死像素,内容一多就会溢出。用最小最大宽度配合自动填充,格子数能跟着屏幕自己变
测一下:真遇到了你会怎么处理
单选 · 选完立刻看解释
要做一个后台仪表盘:12 列的栅格,卡片高度要自动对齐,不同卡片占的列数不一样。
首选哪种布局方式?
-
要同时管住「占几列」和「这一行的高度」,就是二维问题。Grid 天生为此设计。
-
列宽还能勉强做,跨行的高度对齐就非常别扭 —— Flex 每次只盯着一条轴。
-
屏幕尺寸一变就要重算所有坐标,响应式基本没法维护。
题目只考「这个场景下的第一反应」,不考名词背诵 —— 网格布局的定义在上面已经讲过了。