Flexbox 速查:一次搞懂主轴、对齐和换行
Flexbox 是 CSS 布局的主力,但很多人对主轴(main axis)、交叉轴(cross axis)总搞混。这篇用一张图讲透。
一容器,两条轴
给父元素设 display: flex,子元素沿主轴排列,交叉轴垂直方向对齐。
.container {
display: flex;
flex-direction: row; /* 主轴 = 水平 */
/* column 则主轴 = 垂直 */
}
主轴相关
| 属性 | 作用 |
|---|---|
justify-content | 主轴方向分布(start / center / space-between / space-around) |
flex-grow | 子元素按比例瓜分剩余空间 |
flex-shrink | 空间不足时按比例收缩 |
交叉轴相关
| 属性 | 作用 |
|---|---|
align-items | 交叉轴对齐(stretch / center / flex-start / flex-end) |
align-self | 单个子元素覆盖对齐 |
换行
.flex-wrap {
display: flex;
flex-wrap: wrap; /* 允许换行 */
gap: 12px; /* 行列间距,现代浏览器都支持 */
}
结论
记住一句话:justify-content 管主轴,align-items 管交叉轴。剩下的 flex-grow/shrink 是「空间怎么分」的问题,多写几次自然就通了。