display 属性有哪些值?
1. display 分类
CSS 中 display 用于控制元素生成的盒子类型,主要分以下几类:
- 外部值(控制元素参与哪种布局上下文):
block:块级盒子,独占一行,可设置宽高;inline:行内盒子,与其它行内元素同行,宽高由内容决定;inline-block:行内块盒子,对外表现为 inline(同行显示),对内表现为 block(可设宽高)。
- 内部值(控制子元素的布局方式):
flex、inline-flex:弹性盒布局;grid、inline-grid:网格布局;table、table-row、table-cell等:表格布局。
- 盒子行为值:
none:不生成盒子,从渲染树中完全移除;contents:自身不生成盒子,子元素继承父级布局;flow-root:创建 BFC。
- 其它:
list-item:列表项盒子;run-in(已基本废弃);inherit/initial/unset/revert:全局值。
2. 块级元素、内联元素与 inline-block 的区别
- block 元素:
- 独占一行;
- 可设
width/height/padding/margin; - 默认宽度撑满父容器。
- inline 元素:
- 同行显示;
width/height无效;- 水平 padding/margin 有效,垂直 padding/margin 不影响布局。
- inline-block 元素:
- 简单来说就是将对象呈现为 inline 对象,但是对象的内容作为 block 对象呈现。之后的内联对象会被排列在同一行内。
- 比如我们可以给一个 link(a 元素)设置
inline-block属性,使其既具有 block 的可设置宽度和高度特性又具有 inline 的同行特性。
补充:
display: contents是非常实用的现代值,可以让父元素"消失"而子元素继承祖父元素的布局——常用于 flex/grid 容器需要把孙子节点直接作为网格项时。



