CSS: Grid 项目与对齐

最后更新:2026-10-13

在 Grid 布局中,你可以精确控制每个子元素放在哪个网格单元,以及子元素在网格单元内的对齐方式。

Grid 项目属性速查表

属性 常用值 作用
grid-column 1 / 3, span 2, 1 / -1 控制项目跨越哪些列
grid-row 1 / 2, span 3 控制项目跨越哪些行
grid-area header, 1 / 1 / 3 / 4 项目区域(可配合 grid-template-areas 命名)
justify-self stretch, start, end, center 项目自身在列方向的对齐
align-self stretch, start, end, center 项目自身在行方向的对齐
order 0, 1, -1 项目排列顺序(数值越小越靠前)

本节涉及属性: grid-column grid-row grid-area justify-self align-self order justify-items align-items grid-template-areas

1. 项目放置

在定义好网格后,你可以使用以下属性将项目放置到指定的网格位置:

(1) grid-column 和 grid-row

▶ 示例

▶ 试一试

网格线编号:网格的线从 1 开始编号。1 / 3 表示从第 1 条线到第 3 条线,占据中间 2 列。

(2) 使用 span 关键字

▶ 示例

▶ 试一试

(3) 使用简写

▶ 示例

▶ 试一试

2. 项目对齐

(1) 容器上的对齐属性(作用于所有项目)

justify-items: 水平方向对齐(在单元格内)

▶ 示例

▶ 试一试

align-items: 垂直方向对齐(在单元格内)

▶ 示例

▶ 试一试

place-items: 简写

▶ 示例

▶ 试一试

(2) 项目上的对齐属性(作用于单个项目)

justify-self: 单个项目水平对齐(覆盖容器 justify-items)

▶ 示例

▶ 试一试

align-self: 单个项目垂直对齐(覆盖容器 align-items)

▶ 示例

▶ 试一试

place-self: 简写

▶ 示例

▶ 试一试

3. 容器上的整体对齐

当网格的总尺寸小于容器尺寸时,可以用以下属性控制网格整体的位置:

justify-content: 水平方向整体对齐

▶ 示例

▶ 试一试

align-content: 垂直方向整体对齐

▶ 示例

▶ 试一试

place-content: 简写

▶ 示例

▶ 试一试

4. 命名网格区域

(1) grid-template-areas

你还可以给网格区域"命名",然后通过名称放置项目:

▶ 示例

▶ 试一试

这种方法非常直观,适合整体页面布局。


5. 综合示例

▶ 示例

▶ 试一试

本节涉及属性: grid-column grid-row grid-area justify-self align-self order justify-items align-items grid-template-areas

❓ 常见问题

Q grid-column: 1 / -1 是什么意思?
A 表示从第 1 条网格线跨越到最后 1 条网格线(-1 是最后一条线的编号),即占满整行。非常适合做全宽的标题行或分隔行,不需要知道总共有多少列。
Q Grid 项目可以重叠吗?
A 可以。Grid 允许项目占据相同的网格区域,后面的项目会覆盖在前面的上面。可以利用这个特性做叠加效果,比如文字叠在图片上。用 z-index 控制叠放顺序。
Q span 关键字怎么用?
A grid-column: span 2 表示"跨 2 列",比写网格线编号更直观。不需要知道从哪条线开始,浏览器会自动计算。特别适合在不知道具体列数的响应式场景中使用。

📖 小节

📝 作业

  1. 创建一个 4×4 网格,将一个项目放置在从第 2 列第 2 行开始、跨 2 列 2 行的位置。
  2. 使用 grid-template-areas 创建一个完整的页面布局:头部(跨2列)、侧栏、内容区、底部(跨2列)。
  3. 在网格容器中让所有项目水平和垂直居中(使用 place-items: center)。
  4. 让网格中的第三个项目单独在单元格内靠右下角对齐(使用 justify-self 和 align-self)。
Web-Tutorial.com

Web-Tutorial 技术团队

由多位开发者共同维护的编程教程平台。每篇教程由对应领域的开发者编写和审核,确保内容准确可靠。如发现任何问题,欢迎向我们反馈。

100%

🙏 帮我们做得更好

我们是刚上线的编程教程站,几个人的小团队,精力有限。页面虽经检查,难免还有疏漏——链接失效、排版错乱、内容有误、语言生硬……

如果您发现了,麻烦告诉我们,我们会在收到反馈后第一时间进行修复,再次感谢您的光临 🙏