首页 > 代码库 > CSS样式层叠和特殊性

CSS样式层叠和特殊性

 

层叠
同一个元素可以设置多个样式,就会有冲突,用层叠来解决样式冲突;
层叠给每个规则设置了重要度:
  1. 标有 ! important用户样式;
  2. 标有!important作者样式;
  3. 作者样式;
  4. 用户样式;
  5. 浏览器样式。
特殊性:
特殊性决定样式次序,具有特殊性的规则优于一般选择器。特殊性相同,位于后者的规则胜出。给每个规则分配一个数字,将数字加在一起,就是样式的特殊性。特殊性的计算不以10为基数,一个规则的选择器往往少于10个,以10基数比较特殊性更为方便些。
 选择器的特殊性分为4个等级:
 
选择器 a b c d 10进制
行内样式 style="" 1 0 0 0 1000
ID选择器  #container{} 0 1  (ID选择器的总数) 0 0 0100
类、伪类、属性选择器 0 0 1(类、伪类、属性选择器 的总数) 0 0010
元素选择器、伪元素选择器 0 0 0 1(元素选择器、伪元素选择器 ) 0001
通用选择器 0 0 0 0 0000

如果某个样式没有起作用,很可能是特殊性出现冲突。就在规则添加父元素ID,提高特殊性。就很快定位冲突的规则。尽量保持一般性样式非常一般,特殊性样式非常特殊,就不容易发生特殊性冲突了。

 

继承:后代元素继承父级元素的某些属性。 如颜色、字号。继承而来的特殊性为0。
元素的样式和父元素一样,那么把样式应用到父级元素更为简洁。
eg p,div,h1,h2,h3,ol,ul,li{color:black} → body{color:black}

CSS样式层叠和特殊性