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