css选择器优先级

645 阅读1分钟

1.优先级

!important > 行内样式 > ID选择器 > 类选择器 > 标签选择器 > 通配符选择器

2.比较规则

优先级由ABCD的值来决定的:

(1) 如果存在【行内样式】, A = 1,否则 A = 0;

(2) B的值等于【ID选择器】出现的次数

(3) C的值等于【类选择器】和【属性选择器】和【伪类选择器】出现的总次数

(4) D的值等于【标签选择器】和【伪元素选择器】出现的总次数;

算法: 最后得到的四位数(ABCD)数值越大,优先级越高

举例:

#id>div>span>a.cls

根据上述规则得到ABCD的值

(1) 没有行内样式,A = 0;

(2) ID选择器出现1次,B  = 1;

(3) 类选择器出现1次,属性选择器出现0次,伪类选择器出现0次,C = 1;

(4) 标签选择器出现了3次,伪元素出现了0次,D = 3;

故ABCD的值为0113。 

3.css选择器解析原则

从右往左进行解析!减少节点的遍历。

4.css书写建议

  • 尽量少用通配符*选择器
  • 尽量少用ID选择器
  • 不使用无具体语义定义的标签选择器如div、span

>>>前端学习之路>>>