Flex布局中justify-content控制主轴对齐(方向由flex-direction决定),align-items控制交叉轴对齐,默认stretch易致变形,可用align-self为单个子项覆盖,容器无高度时align-items可能无效。
Flex 布局中主轴(main axis)和交叉轴(cross axis)的对齐行为由两个独立属性控制:justify-content 管理主轴,align-items 管理交叉轴。它们默认值不同、作用方向不同,若没显式设置,容易出现“看起来对不齐”或“预期不符”的情况。
justify-content 只在主轴上生效,而主轴方向由 flex-direction 决定:
常见误区:在 column 方向下仍用 justify-content: center 期望“居中于容器高度”,这是正确的;但若误以为它总管“水平居中”,就会出错。务必先看 flex-direction。
align-items 默认值是 stretch,会让子项在交叉轴上填满容器高度(row 时)或宽度(column 时)。这常导致文字不垂直居中、图片被撑变形等问题。
align-items 是容器级设置,影响所有子项;若某个子项要例外,直接在其上加 align-self:
当 flex 容器没有明确尺寸(比如高度为 auto),且子项内容很少时,align-items: center 可能“看起来没效果”——其实是容器本身没高度,子项只能按内容高度排布。