css级联与继承

级联

级联(The cascade),CSS是Cascading Style Sheet 的简写,说明级联是非常重要的。从表层来看,级联表明CSS规则的顺序问题,但是级联远比这个复杂,在所有的选择器中某个选择器定义的规则是否能够胜出(即优先级)取决于三个元素:Importance,Specificity,Source order
①.!important声明(Importance)

在css规则的值末尾添加"!important"能够保证该规则优先其他规则。但是一般建议不使用"!important",因为它会改变级联的工作方式,使得调试变得困难。

例如:

`<style>
    #winning {background-color: red; border: 1px solid black;}
    .better {     background-color: gray; border: none !important;}
</style>
<p class="better">This is a paragraph.</p>        
<p class="better" id="winning">One selector to rule them all!</p>`

②.特性值 (Specificity)
通过4个特性值来量化一个选择器

  • Thousands

声明在元素的style属性中。特性值记为1000

  • Hundreds

包含在一个选择器中的所有ID选择器

  • Tens

包含在一个选择器中的所有类选择器,属性选择器,伪类选择器

  • Ones

包含在一个选择器中的所有元素选择器,伪元素选择器
③.代码顺序 (Source order)

如果多个竞争选择器具有相同的重要性和特性值,代码顺序就发挥作用了,后来规则优先前面规则。

继承(Inheritance)

CSS中有些规则将会默认被子元素继承,有些则不会。比如font系列属性,文本系列属性、列表系列属性,cursor
CSS提供了三个特殊的值用来处理继承
1) inherit 继承父元素的样式
2) initial 不继承。应用浏览器的默认样式
3) unset 不设定,表现该规则本来特性,即如果该规则具有继承属性则继承,否则不继承。

相关推荐