导读:本期聚焦于小伙伴创作的《CSS3 flex布局有哪些核心属性?怎么快速掌握flex布局的使用方法?》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《CSS3 flex布局有哪些核心属性?怎么快速掌握flex布局的使用方法?》有用,将其分享出去将是对创作者最好的鼓励。

CSS3 flex布局也就是弹性盒子布局,是CSS3新增的一种布局模式,主要用来实现容器内子元素的灵活排列和对齐,相比传统浮动、定位布局,它能更简单地处理不同屏幕尺寸下的元素适配问题,减少很多额外的样式代码。

CSS3 flex布局有哪些核心属性?怎么快速掌握flex布局的使用方法?

flex布局的基本概念

使用flex布局的元素叫做flex容器,它的所有直接子元素会自动成为flex项目。开启flex布局只需要在容器元素上设置display: flex或者display: inline-flex,前者会让容器本身表现为块级元素,后者表现为行内元素。

flex容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis),项目默认沿主轴排列,我们可以通过相关属性控制项目在主轴和交叉轴上的对齐、排序、缩放等行为。

flex容器的核心属性

1. flex-direction

该属性用来设置主轴的方向,也就是项目的排列方向,可选值如下:

  • row:默认值,主轴为水平方向,起点在左端
  • row-reverse:主轴为水平方向,起点在右端
  • column:主轴为垂直方向,起点在上沿
  • column-reverse:主轴为垂直方向,起点在下沿
/* 设置容器为垂直方向排列项目 */
.container {
    display: flex;
    flex-direction: column;
}

2. justify-content

该属性定义项目在主轴上的对齐方式,可选值如下:

  • flex-start:默认值,项目左对齐(主轴水平时)
  • flex-end:项目右对齐(主轴水平时)
  • center:项目居中对齐
  • space-between:项目两端对齐,项目之间的间隔相等
  • space-around:每个项目两侧的间隔相等,项目之间的间隔比项目与容器边框的间隔大一倍
  • space-evenly:项目之间、项目与容器边框之间的间隔完全相等
/* 主轴水平时项目居中对齐 */
.container {
    display: flex;
    justify-content: center;
}

3. align-items

该属性定义项目在交叉轴上的对齐方式,可选值如下:

  • stretch:默认值,如果项目未设置高度或设为auto,将占满整个容器的高度
  • flex-start:交叉轴起点对齐
  • flex-end:交叉轴终点对齐
  • center:交叉轴居中对齐
  • baseline:项目的第一行文字的基线对齐
/* 交叉轴居中对齐 */
.container {
    display: flex;
    align-items: center;
}

4. flex-wrap

默认情况下,项目都排在一条轴线上,该属性定义如果一条轴线排不下,是否换行,可选值如下:

  • nowrap:默认值,不换行
  • wrap:换行,第一行在上方
  • wrap-reverse:换行,第一行在下方
/* 容器空间不足时项目换行 */
.container {
    display: flex;
    flex-wrap: wrap;
}

5. flex-flow

该属性是flex-directionflex-wrap的简写形式,默认值为row nowrap

/* 简写形式,主轴垂直,换行 */
.container {
    display: flex;
    flex-flow: column wrap;
}

6. align-content

该属性定义了多根轴线的对齐方式,如果项目只有一根轴线,该属性不起作用,可选值和justify-content类似:

  • flex-start:与交叉轴起点对齐
  • flex-end:与交叉轴终点对齐
  • center:与交叉轴中点对齐
  • space-between:与交叉轴两端对齐,轴线之间的间隔平均分布
  • space-around:每根轴线两侧的间隔相等
  • stretch:默认值,轴线占满整个交叉轴
/* 多行项目在交叉轴均匀分布 */
.container {
    display: flex;
    flex-wrap: wrap;
    align-content: space-between;
}

flex项目的核心属性

1. order

该属性定义项目的排列顺序,数值越小排列越靠前,默认为0,可以是负值。

/* 第二个项目排列到最前面 */
.item:nth-child(2) {
    order: -1;
}

2. flex-grow

该属性定义项目的放大比例,默认为0,即如果存在剩余空间也不放大。如果所有项目的flex-grow属性都为1,则它们将等分剩余空间;如果一个项目的flex-grow属性为2,其他项目都为1,则前者占据的剩余空间将比其他项多一倍。

/* 第一个项目占据两倍剩余空间 */
.item:first-child {
    flex-grow: 2;
}
.item:not(:first-child) {
    flex-grow: 1;
}

3. flex-shrink

该属性定义了项目的缩小比例,默认为1,即如果空间不足,该项目将缩小。如果所有项目的flex-shrink属性都为1,当空间不足时,都将等比例缩小;如果一个项目的flex-shrink属性为0,其他项目都为1,则空间不足时前者不缩小。

/* 第一个项目空间不足时不缩小 */
.item:first-child {
    flex-shrink: 0;
}

4. flex-basis

该属性定义了在分配多余空间之前,项目占据的主轴空间,默认值为auto,即项目的本来大小。它可以设为跟widthheight属性一样的值,比如350px,则项目将占据固定空间。

/* 项目主轴方向固定占据200px空间 */
.item {
    flex-basis: 200px;
}

5. flex

该属性是flex-growflex-shrinkflex-basis的简写,默认值为0 1 auto,后两个属性可选。该属性有两个快捷值:auto等价于1 1 autonone等价于0 0 auto

/* 项目自动放大缩小,初始大小自适应 */
.item {
    flex: auto;
}
/* 项目不放大不缩小 */
.item-fixed {
    flex: none;
}

6. align-self

该属性允许单个项目有与其他项目不一样的对齐方式,可覆盖align-items属性,默认值为auto,表示继承父元素的align-items属性,如果没有父元素则等同于stretch。可选值和align-items完全一致。

/* 第三个项目单独设置交叉轴底部对齐 */
.item:nth-child(3) {
    align-self: flex-end;
}

flex布局常见使用场景

flex布局非常适合做以下场景的布局:

  • 水平垂直居中:容器设置justify-content: centeralign-items: center即可实现子元素水平垂直居中,比传统定位方式简单很多
  • 导航栏布局:导航项用flex排列,设置justify-content: space-between可以轻松实现两端对齐的导航效果
  • 等分布局:项目设置flex: 1即可实现多个项目等分容器空间
  • 自适应卡片列表:容器设置flex-wrap: wrap,项目设置固定flex-basis,即可实现不同屏幕尺寸下自动换行的卡片列表
/* 水平垂直居中示例 */
.center-box {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 500px;
    height: 300px;
    background-color: #f5f5f5;
}
.center-content {
    width: 200px;
    height: 100px;
    background-color: #409eff;
    color: #fff;
    text-align: center;
    line-height: 100px;
}
<div class="center-box">
    <div class="center-content">居中内容</div>
</div>

使用flex布局的注意事项

1. flex布局下,项目的floatclearvertical-align属性会失效,不需要再使用这些属性控制布局。

2. 部分旧版本浏览器对flex布局的支持度有限,如果需要兼容旧版浏览器,可能需要添加对应的前缀,比如-webkit-flex

3. 设置flex: 1的时候,实际上是设置了flex-grow:1; flex-shrink:1; flex-basis:0%,需要注意flex-basis为0%时,项目的大小会完全由flex-grow分配,和设置flex: auto的行为有区别。

flex布局是目前前端开发中最常用的布局方案之一,掌握它的核心属性之后,能大幅减少布局相关的代码量,提升页面适配的效率,建议开发者多结合实际场景练习,加深对不同属性效果的理解。

CSS3flex布局flex_containerflex_item弹性盒子修改时间:2026-07-13 22:54:39

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。