在 Flexbox 中:justify- 跟着主轴翻转,且没有 justify-self
Flex 是 Box Alignment 的例外模式:别的模式里 justify-* 恒等于行内轴、align-* 恒等于块轴;Flex 改用主轴 / 交叉轴——justify-content 永远管主轴、align-* 永远管交叉轴,而主 / 交叉轴本身随
flex-direction 翻转。再加一条:Flex 没有 justify-self / justify-items(主轴上无单格概念),要把单项沿主轴推开得用 margin: auto。本页只讲这套映射规则;对齐与溢出的边界情形见 flex 系列深入页。
与统一模型的两点差异:
其一,轴绑定不同:统一模型 justify=行内 / align=块;Flex justify=主轴 / align=交叉轴,随 flex-direction 翻。
其二,缺两个属性:justify-self / justify-items 在 Flex 被忽略(它们是 Grid 的);单项主轴对齐用 margin: auto 代替。
1 · 切 flex-direction,看主 / 交叉轴互换
容器定宽定高,主轴、交叉轴都有剩余空间。item 高度不一,便于看交叉轴对齐。焦点项 A 演示 margin-inline-start: auto(主轴上把它及其后项推到末端)与 align-self。
2 · Flex 下各对齐属性的映射
| 属性 | 作用轴 | 对象 | 说明 |
|---|---|---|---|
justify-content |
主轴 | 容器→整组 | 分配主轴剩余空间。单行多行都作用。 |
align-items / align-self |
交叉轴 | 容器 / 单项 | 每个项在所在行交叉轴对齐;align-self 覆盖单项。 |
align-content |
交叉轴 | 容器→行间 | 仅多行(flex-wrap: wrap 且换行)分配行间空间;单行无效。 |
justify-items / justify-self |
— | — | 被忽略。单项主轴对齐用 margin: auto 代替。 |
gap |
两轴 | 项之间 | 项间固定间距,先扣除再让 grow/shrink 分配剩余。 |
想深入 Flex 的对齐边界? 本系列的姊妹 Flex 系列已有专题:对齐属性全景、居中即截断(center + overflow 的冲突)、safe / unsafe(给对齐加「别切到内容」)。本页只负责把统一模型映射到 Flex,不重复那些边界细节。