精通 CSS Flexbox 布局
CSS 弹性盒子布局(Flexible Box Layout),通常称为 Flexbox,是一种一维的布局模型,它为在不同屏幕尺寸上组织、对齐和分配项目空间提供了强大的能力。与基于浮动或定位的传统布局相比,Flexbox 更加直观和灵活。
Flexbox 的两个轴
当你使用 Flexbox 布局时,你需要从两个轴的角度来思考:
- 主轴 (main axis): Flex 容器的主轴是 flex 项目(flex items)排列的主要方向。它不一定是水平的,其方向取决于
flex-direction属性。 - 交叉轴 (cross axis): 与主轴垂直的轴称为交叉轴。
容器属性 (Container Properties)
这些属性设置在 flex 容器上。
.container {
display: flex; /* or inline-flex */
flex-direction: row | row-reverse | column | column-reverse;
justify-content: flex-start | flex-end | center | space-between | space-around;
align-items: stretch | flex-start | flex-end | center | baseline;
flex-wrap: nowrap | wrap | wrap-reverse;
}
display: flex;: 激活 Flexbox 布局。flex-direction: 设置主轴的方向。justify-content: 定义项目在主轴上的对齐方式。align-items: 定义项目在交叉轴上的对齐方式。
项目属性 (Item Properties)
这些属性设置在 flex 项目上。
.item {
flex-grow: <number>; /* default 0 */
flex-shrink: <number>; /* default 1 */
flex-basis: <length> | auto; /* default auto */
align-self: auto | flex-start | flex-end | center | baseline | stretch;
}
flex-grow: 定义项目的放大比例,默认为0,即如果存在剩余空间,也不放大。flex-shrink: 定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。align-self: 允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性。
掌握 Flexbox 是现代前端开发的必备技能,它能极大地提高你的布局效率。
← 返回首页