在 Grid 中:两层对齐,且 justify-self 真的生效
Grid 是 Box Alignment 落得最完整的模式,也最贴合统一模型:justify-* 恒管行内轴、align-* 恒管块轴,不随任何方向翻转(与 Flex 形成对照)。它有两层对齐——*-items / *-self 把项在各自 grid area 内定位(默认 stretch 撑满单元),*-content 在所有轨道之和小于容器时分配多出来的空间。最关键的区别:Grid 里 justify-self / justify-items 是生效的(Flex 直接忽略)。
对照 Flex 记: Flex justify-content 管主轴、随方向翻、无 justify-self;Grid justify-* 恒管行内轴、不翻、justify-self 照常生效。Grid 有真正的二维单元格,所以「单项在自己格子里的行内对齐」这件事成立。
1 · 两层 × 两轴,六个属性各管一摊
单元(虚线)比项大 → *-items 把项推到单元某角;轨道之和小于容器 → *-content 分配剩余空间。焦点项 A 用 *-self 覆盖容器设置——这正是 Flex 做不到的。
| 属性 | 轴 | 层级 | 说明 |
|---|---|---|---|
justify-items / align-items |
行内 / 块 | 容器→每项 | 每项在自己 grid area 内对齐,默认 stretch 撑满。 |
justify-self / align-self |
行内 / 块 | 单项 | 覆盖容器设置。justify-self 在 Grid 生效(Flex 不具备)。 |
justify-content / align-content |
行内 / 块 | 容器→轨道组 | 轨道之和 < 容器时分配剩余空间。 |
想深入 Grid 的对齐? 姊妹 Grid 系列有专题:两轴对齐(六属性分工)、列内对齐。本页只把统一模型映射到 Grid。