【CSS 知识总结】第三篇 - CSS 选择器的权重和优先级
创始人
2025-05-30 15:32:43

一,前言

上一篇,主要介绍了 HTML 扩展内容;部分,包含以下内容:

  • HTML 的文档声明;
  • meta 元信息;
  • HTML Entity 字符实体;

从本篇开始,进入 CSS 选择器部分的介绍;

当项目结构比较复杂时,容易出现一个元素同时被添加多个样式的情况
这时可能会出现问题:明明写好的样式却被覆盖掉了。。。那么,CSS 样式覆盖的问题,是否会遵循某种规律呢?
这里就涉及到选择器的权重和优先级的概念;

本篇,将介绍 CSS 选择器的权重和优先级;


二,CSS 的三大特性

  • 继承性:元素能够继承父元素的某些样式属性;
  • 优先级:决定了两个元素发生覆盖时,谁将被覆盖;
  • 层叠性:重复代码会发生合并,只有一个真正起作用;

三,CSS 选择器的优先级

image.png

MDN:CSS 优先级

权级权值选择器备注
0级0000通配选择器通配选择器(*)、选择符(+>~、空格、或)、not
1级0001元素选择器元素、关系、伪元素,如:divp
2级0010class 选择器类选择器、属性选择器、伪类,如:.content:hover
3级0100id 选择器如:#content
4级1000内联选择器如:style=""
5级10000!important不推荐在项目中使用

总结一下,以下选择器对优先级没有影响:

  • 通配选择器:*
  • 关系选择器:+>~' '
  • 否定伪类::not();(注意,在:not()内部声明的选择器会影响优先级)

四,CSS 选择器优先级的计算

  • 选择器会被划分为 4 个等级(排除了 10000 和 0000),每个等级就代表了一类选择器;
  • 优先级总值 = 各等级的选择器个数 * 对应等级权值的总和;

CSS 优先级的计算遵循以下规则:

  • 元素标签中定义了的内联样式,积 1,0,0,0 分;
  • 每个 id 选择器,积 0,1,0,0 分;
  • 每个 class 选择器、属性选择符、伪类,积 0,0,1,0 分;
  • 每个 元素选择器、伪元素选择器,积 0,0,0,1 分;

备注:

  • 伪类 :not() 本身不具有任何优先级,但在它的括号内的内容会被累计到优先级值中;

五,CSS 选择器的权重

权重顺序:

!important > 内联样式 > id 选择器 > class 选择器 > 标签选择器 > 通配符 > 继承 > 浏览器默认;

  • !important:优先级最高;
  • 元素属性:较高优先级;
  • 相同权重下:后面覆盖前面的;

六,面试题

CSS 选择器的权重和优先级的考察,一般会给出一段代码,问最终显示的效果,即判断谁覆盖了谁,为什么;

todo:面试题

七,结尾

本篇,主要介绍了 CSS 选择器部分,主要涉及一下几点:

  • CSS 的三大特征;
  • CSS 选择器的优先级;
  • CSS 优先级的计算规则;
  • CSS 选择器的权重;
  • CSS 选择器面试题;

下一篇,介绍 CSS 选择器伪类和伪元素;


维护日志

  • 20211125
    • 优化 “CSS 选择器的优先级” ,创建表格;
    • 添加 “CSS 优先级的计算规则”;

相关内容

热门资讯

甲流高发季,多补充蛋白质,这8... 在甲流高发的季节,增强自身免疫力是预防病毒的关键,而蛋白质作为身体重要的营养物质,能帮助我们的免疫系...
优惠多活动好,促消费就要下工夫 12月15日上午,广东省文化和旅游厅在广州举办“2026请到广东过大年”系列文旅主题活动新闻发布会,...
中国诗歌春晚总导演盛赞蔡洪坊美... 中国诗歌春晚总导演盛赞蔡洪坊美酒是诗意名酒 本网讯 12月10日上午,中国诗歌春晚总策划、总导演,...
低温酸奶行业健康升级与性价比并... 一、低温酸奶健康属性日益凸显,占酸奶市场的比重持续提升 低温酸奶以牛奶和乳酸菌为原料,通过杀菌后接种...
隔夜了的餐饮,还能吃吗(2) 对于熟食在烹饪完成以后,或者是在进餐的过程中,筷子等餐具上的一些细菌会进入到剩菜,在餐食留置和保存的...