特殊性: 特殊值表达为4个部分,如0, 0, 1, 0,一个选择器的具体特殊性如下:
1.对于选择器中给定的各个ID属性值,加 0,1,0,0;
2.对于选择器中给定的各个类属性值、属性选择或伪类,加 0,0,1,0;
3.对于选择器中给定的各个元素和伪元素,加 0,0,0,1;
4.结合符和通配选择器对特殊性没有任何贡献;
示例:div ul li /* 0,0,0,3 3个元素选择器 */
div.aside ol li /* 0,0,1,3 1个类选择器,3个元素选择器 */
a:hover /* 0,0,1,1 1个伪类选择器,1个元素选择器 */
div.navlinks a:hover /* 0,0,2,2 1个类选择器,1个伪类选择器,2个元素选择器 */
.affix.top /* 0,0,2,0 多类选择器 注 */
input[type="text"] /* 0,0,1,1 1个属性选择器,1个元素选择器 */
input[name="sex"][type="radio"] /* 0,0,2,1 2个属性选择器,1个元素选择器 */
#title em /* 0,1,0,1 1个 ID 选择器,1个元素选择器 */
h1#title em /* 0,1,0,2 1个 ID 选择器,2个元素选择器 */
* /* 0,0,0,0 1个通用选择器 */重要性:!important总是放在声明的最后,即分号前面;继承:指样式不仅会应用到指定元素,还会应用到它的后代元素 注意:1.大多数框模型属性(包括外边距、内边距、背景和边框)都不能继承。
2.继承的bug:如果某元素中只包含纯文本继承能正常起作用,但如果文本中包含了超链接(a元素),用户
代理的超链接样式就会占上风,所以在web浏览器中,如果没有单独对a元素规定样式,则很有可能是蓝 {MOD}。
层叠: 层叠规则:1.找出所有相关规则,这些规则都包含与一个给定元素匹配的选择器;
2.按显式权重对应用到该元素的所有声明排序(创作人员>读者样式>用户代理); 3.按特殊性对应用到给定元素的所有声明排序;
4.按出现顺序对应用到给定元素的所有声明排序(越后出现,权重越大,主样式>外部导入样式)。 推荐的链接样式顺序:link-visited-hover-active(LVHA),不过为了避免样式顺序对代码造成的影响,通常也可以 把伪类链接起来,如::link:hover{color : red}