在 Flexbox 中的映射规则
Flex 是 Box Alignment 的例外模式。别的模式里 justify-* 恒等于行内轴、align-* 恒等于块轴,Flex 改用主轴与交叉轴:justify-content 永远管主轴、align-* 永远管交叉轴,而主轴与交叉轴本身随 flex-direction 翻转。此外 Flex 没有
justify-self 与 justify-items,主轴上无单格概念,要把单项沿主轴推开得用 margin: auto。本页只讲这套映射规则,对齐与溢出的边界情形见 flex 系列的深入页。
1 · 主轴与交叉轴的互换
容器定宽定高,主轴与交叉轴都有剩余空间,item 高度不一以便观察交叉轴对齐。
flex-direction 时主轴与交叉轴的互换。焦点项 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 分配剩余。 |
与统一模型的差异集中在两点。其一是轴绑定不同:统一模型里 justify 对应行内轴、align 对应块轴,Flex 里 justify 对应主轴、align 对应交叉轴,且随 flex-direction 翻转。其二是缺两个属性:justify-self 与 justify-items 在
Flex 中被忽略,它们属于 Grid。
建议 · 对齐的边界情形另有专题,本页不重复:对齐属性全景、居中即截断(center 与 overflow 的冲突)、safe 与 unsafe(给对齐加上「别切到内容」的约束)。