继承性
CSS的某些属性具有继承性(Inherited):
- 如果一个属性具备继承性, 那么在该元素上设置后, 它的后代元素都可以继承这个属性;
- 当然, 如果后代元素自己有设置该属性, 那么优先使用后代元素自己的属性
注意:
- 常见的font-size/font-family/font-weight/line-height/color/text-align都具有继承性;
- a 标签的文字颜色和下划线是不会继承 父元素的属性的,也不能被继承
- h 标签的文字大小不能被继承,也不能继承父元素的
应用场景:用于设置网页上的共性信息,例如:字体大小,颜色等。常:body{}
层叠性
是浏览器处理冲突的一个能力
CSS(Cascading Style Sheet)的翻译是层叠样式表,什么是层叠呢?
- 对于一个元素来说, 相同一个属性我们可以通过不同的选择器给它进行多次设置;
- 那么属性会被一层层覆盖上去;
- 但是最终只有一个会生效;
那么多个样式属性覆盖上去, 哪一个会生效呢?
- 判断一: 选择器的权重, 权重大的生效, 根据权重可以判断出优先级;(后面说)
- 判断二: 先后顺序, 权重相同时, 后面设置的生效;
优先级
- 如果都是间接选中(继承),那就谁离目标近就听谁的
- 如果都是直接选中,并且是相同类型选择器,那就谁写在后面就听谁的
- 如果是直接选中,并且不是相同类型的选择器,那么就按选择器的优先级来。选择器的优先级如下:id>类>标签>通配符>继承>浏览器默认
关于:!important
作用:提升某个直接选中标签的选择器的某个属性的优先级,可以将被指定的属性的优先级提升到最高。
注意:只能用于直接选中,对间接选中不起作用
p { color: #31c27c !important; }
权重问题
按照经验,为了方便比较CSS属性的优先级,可以给CSS属性所处的环境定义一个权值(权重)
- !important:10000
- 内联样式:1000
- id选择器:100
- 类选择器、属性选择器、伪类:10
- 元素选择器、伪元素:1
- 通配符:0
作用:当多个选择器混合使用时,我们可以通过计算权重来判断优先级