块级元素设为display: block是传统文档流布局,子元素按标准流排列;而display: flex则开启弹性布局,子元素沿主轴排列,支持对齐、伸缩与精细控制,适用于导航栏、居中、等高布局等现代页面设计场景。
块级元素默认的display: block和display: flex虽然都让元素以块的形式占据一整行,但它们在布局行为上有本质区别。核心在于:block 是传统文档流中的块,而 flex 是一种强大的弹性布局模式。
1. 布局方向与子元素
排列display: block只表示该元素独占一行,并不改变其内部子元素的排列方式。子元素依然按照标准文档流排列,块级子元素换行,行内元素水平排列。
display: flex会将容器变成一个弹性盒子,其直接子元素自动成为弹性项目,并沿主轴(默认为横向)依次排列,不再换行。
例如:
一个 div 设置 block,内部三个 div 仍垂直堆叠同一个 div 改为 flex,三个子 div 会并排显示(除非空间不足)
2. 子元素尺寸控制能力
在 block 模式下,无法直接通过父容器控制子元素的对齐、拉伸或分布。
立即学习“前端免费学习笔记(深入)
”;
使用 flex 后,父容器可以通过以下属性精细控制子项:使用HTML,CSS,JavaScript开发Android应用程序 英文文字pdf版附源文件如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更下载justify-content:控制主轴对齐(左、中、右、分散等)
align-items:控制交叉轴对齐(上、中、下等)
flex-grow/flex-shrink/flex-basis:定义子项如何伸缩以填充空间3. 对子元素 display 的影响无论子元素原本是 inline 还是 block,在 flex 容器中都会被视为弹性项目,其float、clear 和 vertical-align属性失效。
而普通 block 容器不会影响子元素的这些样式行为。
4. 实际应用场景对比
用display: block更适合静态内容结构,比如段落、标题、分组区域等不需要复杂对齐的场景。
用display: flex更适合需要动态对齐、等高布局、居中、空间分配的场景,比如导航栏、卡片布局、居中弹窗等。
基本上就这些。block 是基础显示类型,flex 是现代布局工具,功能更强,控制更灵活。把块级元素设为 flex,就等于开启了弹性布局模式。不复杂但容易忽略。
