display 是 CSS 中 控制元素显示方式的属性,决定了 元素如何渲染、如何影响布局。它有多个取值,每个值的作用不同。
🎯 1. display 常见取值
值 | 作用 | 适用场景 |
block | 块级元素,占满整行 | div、p |
inline | 行内元素,不换行 | span、a |
inline-block | 行内块元素,不换行但可设置宽高 | button、input |
flex | 弹性布局,子元素可以自由排列 | 布局容器 |
grid | 网格布局,二维排列 | 复杂布局 |
none | 隐藏元素,不占空间 | 隐藏内容 |
table | 让元素像 <table> | 表格布局 |
contents | 让元素的内容显示,但自身不参与布局 | 仅展示子元素 |
✅ 2. display: block(块级元素)
特点
• 占据整行(独占一行)
• 支持宽高 (width, height)
• 支持 margin、padding
• 默认从上往下排列
示例
📌 **适用于 div、p、h1-h6、ul、ol
✅ 3. display: inline(行内元素)
特点
• 不会换行,只占自身内容大小
• 不能设置 width / height(无效)
• margin、padding 仅水平方向生效
示例
📌 适用于 span、a、strong、em 等
🚨 ⚠️ 注意
• 无法设置 width / height,如果需要设置宽高,使用 inline-block。
✅ 4. display: inline-block(行内块元素)
特点
• 不会换行(和 inline 一样)
• 但可以设置 width 和 height(和 block 一样)
• 适用于按钮、输入框等需要大小控制的行内元素
示例
📌 适用于 button、input、img 等
✅ 5. display: flex(弹性布局,适用于容器)
特点
• 让子元素可以灵活排列
• 支持 justify-content(水平对齐)、align-items(垂直对齐)
• 适用于任何布局
示例
📌 适用于:布局容器、导航栏、侧边栏等。
✅ 6. display: grid(网格布局)
特点
• 二维布局,可精确控制行列
• 适用于复杂的排版
示例
📌 适用于:表格布局、复杂 UI 设计。
✅ 7. display: none(隐藏元素)
特点
• 元素不会显示,并且不占空间
• 适用于隐藏菜单、弹窗等
示例
📌 适用于:切换菜单、模态框。
🚨 ⚠️ display: none 与 visibility: hidden 的区别
属性 | 是否占空间 | 是否可交互 |
display: none | ❌ 不占空间 | ❌ 无法交互 |
visibility: hidden | ✅ 仍然占空间 | ❌ 无法交互 |
✅ 8. display: contents(让父元素消失)
特点
• 让元素的子元素显示,但自身不影响布局
• 类似 display: none,但不会隐藏子元素
示例
📌 适用于:删除不必要的 div,优化 HTML 结构。
🎯 9. display 总结
display 值 | 作用 |
block | 占满整行,支持宽高 |
inline | 行内显示,不换行,不支持宽高 |
inline-block | 行内显示,可设置宽高 |
flex | 弹性布局,控制子元素排列 |
grid | 网格布局 |
none | 隐藏元素,不占空间 |
table | 让元素像表格 |
contents | 让父元素消失,但子元素仍然显示 |
🚀 现在,你对 display 彻底掌握了!
如果你有 更复杂的布局需求(比如 flex、grid、动画),告诉我,我帮你优化!🔥😊