上一篇,主要介绍了 HTML 扩展内容;部分,包含以下内容:
从本篇开始,进入 CSS 选择器部分的介绍;
当项目结构比较复杂时,容易出现一个元素同时被添加多个样式的情况
这时可能会出现问题:明明写好的样式却被覆盖掉了。。。那么,CSS 样式覆盖的问题,是否会遵循某种规律呢?
这里就涉及到选择器的权重和优先级的概念;
本篇,将介绍 CSS 选择器的权重和优先级;

MDN:CSS 优先级
| 权级 | 权值 | 选择器 | 备注 |
|---|---|---|---|
| 0级 | 0000 | 通配选择器 | 通配选择器(*)、选择符(+、>、~、空格、或)、not |
| 1级 | 0001 | 元素选择器 | 元素、关系、伪元素,如:div、p; |
| 2级 | 0010 | class 选择器 | 类选择器、属性选择器、伪类,如:.content、:hover; |
| 3级 | 0100 | id 选择器 | 如:#content; |
| 4级 | 1000 | 内联选择器 | 如:style=""; |
| 5级 | 10000 | !important | 不推荐在项目中使用 |
总结一下,以下选择器对优先级没有影响:
*;+、>、~、' ';:not();(注意,在:not()内部声明的选择器会影响优先级)CSS 优先级的计算遵循以下规则:
备注:
权重顺序:
!important > 内联样式 > id 选择器 > class 选择器 > 标签选择器 > 通配符 > 继承 > 浏览器默认;
CSS 选择器的权重和优先级的考察,一般会给出一段代码,问最终显示的效果,即判断谁覆盖了谁,为什么;
todo:面试题
本篇,主要介绍了 CSS 选择器部分,主要涉及一下几点:
下一篇,介绍 CSS 选择器伪类和伪元素;