一、可继承属性(子元素默认继承父元素的值)
核心特征:与文本内容样式或排版连续性相关的属性
1. 文字类
font-family
字体类型font-size
字号font-weight
字重 (bold/normal)font-style
斜体 (italic)color
文字颜色text-align
对齐方式line-height
行高text-indent
首行缩进letter-spacing
字符间距word-spacing
单词间距
2. 列表类
list-style-type
列表符号类型 (disc/circle)list-style-position
符号位置 (inside/outside)
3. 表格类
border-collapse
表格边框合并border-spacing
表格单元格间距
4. 其他
cursor
鼠标样式visibility
可见性 (hidden 依然占位)quotes
引用符号样式
记忆场景:想象你写一篇文章,所有段落里的文字样式(字体/颜色/对齐)会自动继承自父容器,无需重复设置。
二、不可继承属性(子元素需单独设置)
核心特征:与布局/盒子模型或元素自身外观相关的属性
1. 盒子模型
width
/height
宽高margin
/padding
外边距/内边距border
边框样式background
背景相关box-shadow
盒子阴影
2. 定位布局
position
定位方式display
显示模式top
/left
定位偏移float
/clear
浮动z-index
层叠顺序
3. 元素特性
overflow
溢出处理opacity
透明度transform
变形效果flex
/grid
弹性/网格布局属性
记忆场景:想象给一个 div 设置宽度和边距,内部的子元素不会自动继承这些布局属性,否则会导致页面布局混乱。
三、强制继承技巧
通过 inherit
关键字强制继承(即使属性本身不可继承):
.child {
background: inherit; /* 强制继承父元素背景 */
border: inherit; /* 强制继承父元素边框 */
}
四、快速记忆口诀
- 可继承:文字排版类 (Font/Text/List) + 连续性视觉类 (Cursor/Visibility)
- 不可继承:盒子模型 (Width/Height/Margin) + 布局定位 (Position/Display/Float) + 自身特性 (Background/Border)
- 例外注意:
visibility: hidden
可继承但隐藏内容cursor
可继承,子元素默认使用父级鼠标样式
五、面试高频问题
问:如何让不可继承的属性实现继承?
答:用 inherit
关键字,例如 width: inherit;
问:opacity
和 visibility: hidden
的区别?
答:opacity
不可继承但影响整个子树的透明度,visibility
可继承但只是隐藏内容(保留占位)