← 🟩 CSS Grid · 二维布局与轨道模型 / 两轴对齐:justify- 管行内轴、align- 管块轴 待审核 4 / 8
alignment · 两轴对齐

两轴对齐:justify- 管行内轴、align- 管块轴

Grid 的对齐分两层、两轴。两轴:justify-*行内轴(水平书写下是横向)、align-*块轴(纵向)——注意这与 Flex 按「主轴 / 交叉轴」的记法不同,Grid 永远是行内轴 / 块轴绑定到 justify / align,不随方向翻转。两层:*-items / *-self 把项在各自单元内对齐;*-content所有轨道之和小于容器时分配多出来的空间。一个关键差异:Grid 里 justify-self / justify-items 是生效的(Flex 里被忽略)。

记法对照(别和 Flex 混): Flex——justify-content 管主轴、align-* 管交叉轴,随 flex-direction 翻转;Grid——justify-* 恒管行内轴、align-* 恒管块轴,与方向无关。

1 · 切换各对齐值,看项在单元内 / 轨道整体的位置

单元(虚线框)比项大,故 *-items 能把项推到单元的某角;轨道之和小于容器,故 *-content 能分配剩余空间。「焦点项 A」额外用 *-self 覆盖容器设置。

2 · 六个对齐属性的分工

属性 层级 作用
justify-items 行内 容器→所有项 每个项在自己单元内的横向对齐(默认 stretch)。
align-items 容器→所有项 每个项在自己单元内的纵向对齐(默认 stretch)。
justify-self 行内 单个项 覆盖 justify-items,在 Grid 生效(Flex 无效)。
align-self 单个项 覆盖 align-items
justify-content 行内 容器→轨道组 列轨之和 < 容器时,分配横向剩余空间。
align-content 容器→轨道组 行轨之和 < 容器时,分配纵向剩余空间。
place-items / place-content / place-self 两轴 简写,place-items: center = align-items: center; justify-items: center

居中一个元素的最短写法: display: grid; place-content: center——行内、块两轴同时居中,常用于把单个子元素钉在容器正中。