我的技术博客

精通 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 是现代前端开发的必备技能,它能极大地提高你的布局效率。

← 返回首页