发布时间:2026/7/15 21:22:44
CSS弹性盒子布局(Flexbox)详解 一、弹性盒子概述1.1 基本概念弹性盒子Flexbox​ 是CSS3中引入的一种布局手段主要用于代替浮动完成页面布局。特性说明核心优势使元素具有弹性可根据页面大小自动调整相比浮动更灵活无高度塌陷问题兼容性CSS3新增特性适用于IE10版本浏览器1.2 开启弹性盒子display: flex; /* 块级弹性容器 */ display: inline-flex; /* 行内弹性容器 */1.3 相关概念术语说明弹性容器​设置了display: flex的元素弹性元素​弹性容器的直接子元素​注意一个元素可以同时是弹性容器和弹性元素即嵌套使用。二、弹性容器属性2.1 flex-direction — 主轴方向控制作用指定容器中弹性元素的排列方式即主轴方向。值描述主轴方向row默认值水平排列左→右自左向右row-reverse反向水平排列右→左自右向左column纵向排列上→下自上向下column-reverse反向纵向排列下→上自下向上.container { display: flex; flex-direction: row; /* 水平排列默认 */ flex-direction: column; /* 垂直排列 */ }2.2 justify-content — 主轴排列方式作用控制弹性元素在主轴上的排列方式。值描述flex-start默认值沿主轴起点排列flex-end沿主轴终点排列center沿主轴居中排列space-between两端对齐排列两端无空隙中间均匀分布space-around空白间距平均分布在弹性元素两侧space-evenly所有间距完全相等.container { justify-content: center; /* 居中 */ justify-content: space-between; /* 两端对齐 */ justify-content: space-around; /* 两侧等距 */ }2.3 align-items — 侧轴单行排列作用控制单行弹性元素在侧轴上的排列方式。值描述stretch默认值拉伸填充元素未设高度时flex-start沿侧轴起点排列flex-end沿侧轴终点排列center沿侧轴居中排列baseline沿基线对齐.container { align-items: center; /* 垂直居中 */ align-items: stretch; /* 拉伸填满 */ }2.4 flex-wrap — 换行控制作用控制弹性元素是否换行。值描述nowrap默认值不换行元素可能会被压缩wrap换行wrap-reverse换行 反转排列顺序.container { flex-wrap: wrap; /* 允许换行 */ }2.5 align-content — 侧轴多行排列作用控制多行弹性元素在侧轴上的排列方式需配合flex-wrap: wrap使用。值描述stretch默认值拉伸填满flex-start沿侧轴起点排列flex-end沿侧轴终点排列center沿侧轴居中排列space-between两端对齐排列space-around空白间距平均分布在弹性元素两侧.container { flex-wrap: wrap; align-content: center; /* 多行居中 */ align-content: space-between; /* 多行两端对齐 */ }2.6 flex-flow — 简写属性作用flex-direction和flex-wrap的简写。flex-flow: flex-direction flex-wrap; /* 示例 */ flex-flow: row wrap; /* 水平排列 允许换行 */ flex-flow: column nowrap; /* 垂直排列 不换行 */三、弹性元素属性3.1 order — 排列顺序作用定义弹性元素的排列顺序。属性说明默认值0规则数值越小排列越靠前.item1 { order: 3; } /* 排在后面 */ .item2 { order: 1; } /* 排在前面 */ .item3 { order: 2; } /* 排在中间 */3.2 flex-grow — 放大比例作用定义弹性元素的放大比例。属性说明默认值0即使有剩余空间也不放大规则按比例分配剩余空间.item1 { flex-grow: 1; } /* 占1份 */ .item2 { flex-grow: 2; } /* 占2份比item1多占一倍 */3.3 flex-shrink — 缩小比例作用定义弹性元素的缩小比例。属性说明默认值1空间不足时按比例缩小规则值越大缩小幅度越大.item1 { flex-shrink: 0; } /* 不缩小 */ .item2 { flex-shrink: 2; } /* 缩小幅度是默认的2倍 */3.4 flex-basis — 基准大小作用定义在分配多余空间之前弹性元素占据的主轴空间。属性说明默认值auto元素的本来大小取值像素值、百分比等.item { flex-basis: 200px; /* 主轴方向上的初始大小为200px */ }3.5 flex — 简写属性作用flex-grow、flex-shrink、flex-basis的简写。flex: flex-grow flex-shrink flex-basis; /* 默认值 */ flex: 0 1 auto; /* 常用写法 */ flex: 1; /* flex: 1 1 0%等分剩余空间 */ flex: none; /* flex: 0 0 auto固定大小 */ flex: auto; /* flex: 1 1 auto自动适应 */3.6 align-self — 单独对齐作用允许单个弹性元素拥有与其他元素不同的对齐方式覆盖父元素的align-items属性。值说明auto默认值继承父元素的align-itemsflex-start侧轴起点对齐flex-end侧轴终点对齐center侧轴居中对齐stretch拉伸填满baseline基线对齐.container { align-items: flex-start; /* 其他元素顶部对齐 */ } .special-item { align-self: center; /* 该元素单独居中对齐 */ }四、完整示例代码4.1 HTML结构ul li1/li li2/li li3/li li4/li li5/li /ul4.2 CSS样式/* 基础重置 */ * { margin: 0; padding: 0; list-style: none; } /* 弹性容器 */ ul { width: 500px; height: 500px; border: 10px solid red; margin: 10px auto; /* 开启弹性盒子 */ display: flex; flex-direction: row; /* 水平排列 */ justify-content: center; /* 主轴居中 */ align-items: center; /* 侧轴居中 */ flex-wrap: wrap; /* 允许换行 */ } /* 弹性元素 */ li { width: 100px; height: 100px; background-color: #bfa; font-size: 50px; line-height: 100px; text-align: center; }五、核心概念总结5.1 主轴与侧轴轴说明主轴​弹性元素的排列方向由flex-direction决定侧轴​与主轴垂直的方向5.2 布局逻辑第一步确定主轴方向flex-direction 第二步控制主轴排列justify-content 第三步控制侧轴排列align-items / align-content 第四步处理溢出换行flex-wrap5.3 实用技巧技巧说明水平垂直居中justify-content: centeralign-items: center等分空间所有子元素设置flex: 1固定自适应固定元素不加flex自适应元素设置flex: 1排序调整使用order属性调整显示顺序不改变HTML结构个别元素特殊对齐使用align-self覆盖父容器的align-items简写属性使用flex-flow简化flex-directionflex-wrap六、常见问题解答Q1Flexbox 和浮动有什么区别对比项Flexbox浮动float高度塌陷无此问题需要清除浮动对齐方式灵活多样有限响应式天然支持需要额外处理使用难度简单较复杂Q2什么时候用align-items什么时候用align-content单行时用align-items多行时配合flex-wrap: wrap用align-contentQ3flex: 1是什么意思等同于flex: 1 1 0%表示flex-grow: 1可放大flex-shrink: 1可缩小flex-basis: 0%初始大小为0公平分配空间七、总结本文详细介绍了CSS弹性盒子布局的完整知识体系基本概念弹性容器、弹性元素、主轴与侧轴容器属性flex-direction、justify-content、align-items、flex-wrap、align-content、flex-flow元素属性order、flex-grow、flex-shrink、flex-basis、flex、align-self实战技巧水平垂直居中、等分空间、固定自适应布局掌握Flexbox布局后你将能够轻松应对绝大多数页面布局需求告别浮动带来的各种问题。

相关新闻

2026/7/15 21:17:44

HEAD请求实战指南:从原理到性能优化的深度探索

1. HEAD请求的本质与核心价值第一次听说HEAD请求时,你可能会有这样的疑问:既然已经有了GET请求,为什么还需要一个不返回响应体的请求方法?这就像去餐厅吃饭时,服务员先给你看菜单(HEAD请求)&…

2026/7/15 22:23:15

Pixhawk留待模式硬件依赖与参数调优实战指南

1. 什么是留待模式?它到底在飞控里干了什么活? “Pixhawk留待模式”这六个字,我第一次在飞控调试现场听到时,手里的遥控器差点没捏稳——不是因为多高深,而是因为它太“像人”了。它不像自稳模式那样只管姿态、不管位置…

2026/7/15 22:23:15

模板驱动型文档自动化:零代码实现结构化PDF/Word批量生成

1. 项目概述:当文档生成变成“填空游戏”你有没有过这种体验:每周要交三份结构雷同但数据不同的项目周报,每份都要手动调整标题层级、更新图表编号、核对页眉页脚、反复检查目录是否自动更新;法务同事发来一份标准服务协议模板&am…

2026/7/15 22:23:15

微信接口开发:高效实现多媒体消息自动推送

在企业自动化办公或各类业务预警系统中,仅仅推送一行纯文本往往是不够的。比如财务报表的 PDF 截图、设备故障的现场照片,或是重要的语音通知,这些多媒体内容往往才是决策的核心信息。 通过微信接口实现多媒体消息的自动化推送,是…

2026/7/15 22:23:15

微信接口接入:如何串起企业的自动化流程?

很多时候,企业的研发团队在处理“微信接口”时,总是陷入一种困境:业务系统、数据库、AI 分析引擎以及各部门的通知需求,彼此像是一座座“孤岛”。每当需要打通一个新的环节,就得写一堆脚本、定时任务或者 Webhook 转发…

2026/7/15 17:04:06

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南

3步解锁音乐自由:ncmdumpGUI终极NCM文件解密转换指南 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 你是否曾在网易云音乐下载了心爱的歌曲&#…

2026/7/15 22:21:34

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境

CANoe 19 SP3 配置 GB/T 27930-2023 A类系统:3步搭建BMS仿真测试环境随着新能源汽车行业的快速发展,充电通信协议的标准化和测试验证变得尤为重要。GB/T 27930-2023作为中国智能充电协议的最新版本,对充电机与电动汽车之间的通信提出了更严格…

2026/7/14 18:30:06

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡

3步搞定RTL8852BE驱动:从零开始配置Wi-Fi 6网卡 【免费下载链接】rtl8852be Realtek Linux WLAN Driver for RTL8852BE 项目地址: https://gitcode.com/gh_mirrors/rt/rtl8852be 还在为Linux系统无法识别RTL8852BE Wi-Fi 6网卡而烦恼吗?&#x1f…

2026/7/15 0:08:29

【LINUX】驱动

【LINUX驱动】【字符设备】【中断】【Platform】【网课 设备树】【GPIO】【PINCTRL】【INPUT】【IIC】【SPI】【网络驱动】【屏幕驱动】【一 设备树】【二 内核模块编译】【三 基本驱动框架】【四 Platform总线设备驱动框架】【五 驱动子系统】【六 综合】

2026/7/15 0:08:29

【1982-2026】全国高精度建筑轮廓|村级精度|SHP矢量

🔍 数据简介 本次分享1982-2026年全国村级精度建筑轮廓矢量数据,覆盖全国各省市区县,到村级别精细,为2026年最新实时采集成果,非网传仅60/77个城市的老旧数据。 数据含带高度/不带高度双版本,单体建筑边界精…

2026/7/15 0:08:29

【1975-2026】全国水系水路数据|河流/水库/运河|SHP矢量

🔍 数据简介 本次分享1975-2026年全国高精度水系水路矢量数据,覆盖全国全域,包含河流、水系、水库、运河、湿地、冰川、沟渠等全类别水文要素。 数据集包含双层矢量图层,字段分类清晰、要素齐全,支持2013-2026逐年完整…

2026/7/15 13:36:32

3个高效策略:快速掌握Axure中文界面配置

3个高效策略:快速掌握Axure中文界面配置 【免费下载链接】axure-cn Chinese language file for Axure RP. Axure RP 简体中文语言包。支持 Axure 11、10、9。不定期更新。 项目地址: https://gitcode.com/gh_mirrors/ax/axure-cn 还在为Axure RP的英文界面感…