层叠
什么是层叠?
层叠是一种机制,用于解决CSS声明冲突,多个相同的css声明(属性),应用到同一个元素上。
层叠机制:
比较优先级:每一个声明都有一个优先级;当发生冲突时,优先级高的会保留,优先级低的会被淘汰。
一个声明的优先级,与它的来源和重要性有关:1:浏览器默认样式表中的声明;2:作者样式中的普通声明;3:作者样式中的重要声明
比较特殊性——总体规则:
每一个声明都有一个特殊性(specificity);当发生冲突时特殊性高的会保留,特殊性低的会被淘汰;一个声明特殊性,取决于适用范围的大小;规则适用范围越大,特殊性越低,适用范围越小特殊性越高。
总结: 行内样式>ID选择器>类选择器>元素选择器>通配符选择器>
比较特殊型——具体规则:
a :若声明是行内样式,则为1,否则为0
b:规则中ID选择器,伪类选择器,和属性选择器的个数
c: 规则中类选择器,伪类选择器和属性选择器的个数
d: 规则中元素选择器,伪选择器的个数