尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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布局后你将能够轻松应对绝大多数页面布局需求告别浮动带来的各种问题。
RELATED

相关推荐

自动驾驶横向控制算法——从几何模型到工程实践:Pure Pursuit的优化与挑战

自动驾驶横向控制算法——从几何模型到工程实践:Pure Pursuit的优化与挑战

1. Pure Pursuit算法核心思想解析Pure Pursuit算法的核心思想源自人类驾驶员的行为模式。想象一下你开车时的场景:眼睛会自然看向前方某个目标点,双手控制方向盘使车辆朝着该点行驶。这种"看远控近"的驾驶策略,正是Pure Pursuit算法…

📅 2026/9/10 6:04:12
Claude Code 初始 Token 是 OpenCode 的 4.7 倍:5 款 AI 编程 CLI 横评与成本优化实战

Claude Code 初始 Token 是 OpenCode 的 4.7 倍:5 款 AI 编程 CLI 横评与成本优化实战

Claude Code 初始 Token 是 OpenCode 的 4.7 倍:5 款 AI 编程 CLI 横评与成本优化实战 适用读者:每天在终端里跑 AI 编程工具或者正纠结选 Claude Code / OpenCode / Aider / Codex CLI / Gemini CLI 中的哪一款的独立开发者和中小团队负责人 阅读时长:约 12 分钟 测…

📅 2026/9/5 3:56:59
【Java踩坑笔记】47_日期时间计算还在用SimpleDateFormat?线程不安全

【Java踩坑笔记】47_日期时间计算还在用SimpleDateFormat?线程不安全

47 | 日期时间计算还在用 SimpleDateFormat?线程不安全摘要:SimpleDateFormat 不是线程安全的,多线程共享一个实例会导致数据错乱甚至抛异常。Java 8 用 DateTimeFormatter(不可变,线程安全)。一、问题现象…

📅 2026/9/5 23:14:55
MORE NEWS

更多资讯

📰

simulink的MCU‑电机效率 MAP 在 NEDC 工况仿真方法

目录 一、为什么要做 MCU + 电机效率 MAP 在 NEDC 工况 二、效率 MAP 与 NEDC 映射原理 2.1 典型效率 MAP(简化数学构造) 2.2 NEDC → 电机点 三、关键参数 四、Simulink 建模(手把手) 4.1 Step 1️⃣ —— NEDC 车速剖面 4.2 Step 2️⃣ —— 车速 → 电机 (n_mot …

📰

最终留出样本/样本外测试集-holdout解读

在看报告时经常会碰到如下术语 holdout 5.4%/yr、长窗 skewness 五分组价差 7.5%/8.6%(两宇宙) 这里的holdout指:最终留出样本 / 样本外测试集。 1 holdout举例 在前面一段数据上发现、调参、选窗口、选分组、选中性化方式; 留出…

📰

2026年高教社杯全国大学生数学建模竞赛题目2026CUMCM A题药材的烘干问题 数学建模国赛详细解题

专栏内持续更新ABCDE题思路代码论文,只需订阅一次,无需重读订阅 演示视频: 2026 CUMCM A 题 CSDN 图文专栏 药材的烘干问题 从轴对称传热传质到有限体积求解:四问模型、代码、结果与长视频讲解

📰

关系数据与向量数据联合查询

文章目录每日一句正能量1. 背景与问题2. 环境与数据2.1 客户关系表2.2 文档画像和向量表2.3 客户行为时序表3. 复现过程3.1 只有关系筛选的局限3.2 只有向量检索的风险3.3 复现过滤后置问题4. 方案实施4.1 先定义强约束4.2 关系与向量联合查询4.3 组合 JSONB 标签4.4 使用时序行…

📰

【共创稿事节】DevEco Studio 7.0新特性全面解析与上手指南

文章目录每日一句正能量摘要一、引言:7.0值得升级吗?二、新特性总览2.1 五大升级方向2.2 版本要求三、空间化设计工具升级3.1 3D预览面板3.2 空间属性编辑器四、智能编码增强4.1 AI代码补全4.2 空间模板生成4.3 智能重构五、性能优化5.1 关键指标对比5.2…

📰

向量维度详解,Embedding 模型选型与量化原理

《向量检索与 AI RAG/Agent 落地实战》系列文章总目录 第 01 篇:为什么 AI Agent / RAG 系统需要向量第 02 篇:向量维度详解,Embedding 模型选型与量化原理第 03 篇:向量数据库核心作用(索引原理、关系库区别、企业级…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬