使用 Subgrid 对齐嵌套内容
使用 subgrid 将嵌套网格项目与父网格的轨道对齐。
使用 Subgrid 对齐嵌套内容 是 CoddyKit 上的免费 CSS Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 CSS Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 CSS Academy 课程共包含 4 节课。
子网格问题
一个常见的挑战是:您有一个由卡片组成的网格,每张卡片都包含页眉、主体和页脚。如果不使用子网格,不同卡片中的项目就无法与相同的基线对齐,因为每张卡片都是独立的布局。
什么是子网格?
subgrid 是 grid-template-columns 或 grid-template-rows 的一个值,它会使嵌套网格继承父网格的轨道定义并参与其中。
grid-template-rows: subgrid
同时作为网格容器的网格项目可以使用 subgrid,使其子项目与父网格轨道对齐:
<div class="card-grid">
<div class="card">
<div class="card-header">Header</div>
<div class="card-body">Body</div>
<div class="card-footer">Footer</div>
</div>
</div>grid-template-columns: subgrid
同样,在列上使用子网格可以让嵌套项目与父网格的列轨道对齐,这对于跨卡片列对齐标签-值对或表单字段非常有用。
子网格与 align-content 的比较
没有子网格时,您可以使用 align-content 或固定高度来实现部分对齐,但这种方式很脆弱。子网格则可以根据实际内容高度实现真正的对齐。
使用子网格对齐表单
跨多个表单列对齐标签和输入框:
<div class="form-grid">
<div class="form-section">
<label>Name</label><input placeholder="Name" />
<label>Email</label><input placeholder="Email" />
</div>
</div>子网格跨越行和列
子网格可以跨越多个父网格轨道,并从两个方向继承轨道:
<div class="layout"><div class="feature">Feature spans grid</div></div>使用子网格处理命名区域
子网格从父网格继承命名轨道后,这些名称就可以用于在子网格容器内部进行放置。
间隙继承
子网格默认继承父网格的 gap 值。嵌套网格会参与同一个间距系统。
浏览器支持说明
Firefox 自 2019 年起就支持子网格。Chrome 于 2023 年加入了支持。现在所有现代浏览器都支持它。在生产环境中使用前,请确认目标用户群体所使用的浏览器支持该功能。
使用子网格实现渐进增强
在添加子网格增强功能之前,请使用固定高度或 Flexbox 对齐,为较旧的浏览器提供回退方案:
<div class="card-grid"><div class="card">Card content</div></div>快速检查
在网格项目上使用 grid-template-rows: subgrid 会产生什么效果?
总结
子网格解决了嵌套网格内容的对齐问题,例如卡片网格中不同卡片内的项目需要与同一基线对齐的情况。对于跨越多行的网格项目,请使用 grid-template-rows: subgrid;对于按列对齐的嵌套内容,请使用 grid-template-columns: subgrid。现代浏览器现在已经普遍支持该功能。
常见问题解答
「使用 Subgrid 对齐嵌套内容」课时是免费的吗?
是的 — 「使用 Subgrid 对齐嵌套内容」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 CSS Academy 课程的其余内容,请升级到 CoddyKit PRO。 CSS Academy 课程共包含 4 节课。
「使用 Subgrid 对齐嵌套内容」这节课中我会学到什么?
使用 subgrid 将嵌套网格项目与父网格的轨道对齐。 你通过在浏览器中直接运行的动手代码来练习 CSS Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 CSS Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 CSS Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「使用 Subgrid 对齐嵌套内容」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 CSS Academy 课中编写并运行代码吗?
能。每节 CSS Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 命名网格线与命名网格区域
- 使用 minmax 的 Auto-fit 与 Auto-fill
- 隐式网格与 Grid-Auto-Flow
- 使用 Subgrid 对齐嵌套内容