讲师中心 微信公众号
AI工具推荐 视频效率加速

为什么CSS选择器的优先级计算规则是前端开发者的必修课?

大伟君_1918

大伟君_1918

发布时间:2026-06-20 16:08:58

|

557人浏览过

|

来源于php中文网

原创

CSS优先级由选择器权重决定,而非书写顺序;权重按(a,b,c,d)四位逐位比较,ID选择器(b位)单个即胜过所有类组合(c位),如#header .nav a(0,1,1,1) > .menu-link.active(0,0,2,0)。

为什么css选择器的优先级计算规则是前端开发者的必修课?

因为样式不生效、覆盖失效、调试像猜谜——这些问题几乎都卡在优先级算错上。

为什么 #header .nav a 会赢过 .menu-link.active

不是“写在后面就生效”,而是权重比大小。前者是 ID + 类 + 元素,对应 (0,1,1,1);后者是两个类,(0,0,2,0)。比较时先看第二位:1 > 0,直接胜出,哪怕后面写了 100 行也不管用。

  • ID 选择器单个就压倒所有类组合,#btn 能盖过 .btn.primary.large
  • 属性选择器 [data-role="tab"] 和类选择器权重一样,都是 c=1,可混用提升特异性
  • 伪类如 :hover、:nth-child(2) 也计入 c,不是“附加效果”,是实打实的权重加成

!important 真的能救命吗?

能,但只救一时,且代价明确:它把单条声明拉到最高层级,但不改变选择器本身的权重。比如:

.card { color: red !important; }
#profile .card { color: blue; }

结果仍是红色——!important 生效了,但如果你再加一条:

前端设计优化skill
前端设计优化skill

前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。前端设计与 UI/UX 全方位优化专家。覆盖视觉层次、排版系统、色彩理论、响应式布局、交互体验、动画动效、无障碍访问、性能优化八大维度,帮助开发者将普通页面升级为高品质产品级界面。

下载

立即学习“前端免费学习笔记(深入)”;

#profile .card { color: green !important; }

绿色就会覆盖红色,因为两个 !important 之间,还是要比原始选择器权重:(0,1,1,0) > (0,0,1,0)。

  • !important 不能跨来源翻盘:用户样式里的 !important 仍可能被作者样式里的 !important 压制
  • 内联样式自带隐式 !important 效果,style="color: black" 的权重是 (1,0,0,0),比任何外部 !important 都高
  • 滥用会导致后续覆盖越来越重,最后不得不写 #app #main #content .item:hover 这种反模式

为什么 div p span 和 .wrapper span 可能结果相反?

后代选择器数量不影响权重,只看类型。前者三个元素选择器:(0,0,0,3);后者一个类 + 一个元素:(0,0,1,1)。虽然写得长,但 c=1 直接碾压 d=3。

  • 组合器(>、+、~)完全不参与计算,删掉它们不影响优先级
  • 通配符 * 权重为 (0,0,0,0),和继承来的样式一样,基本没存在感
  • 伪元素 ::before 和标签同级,button::after 是 (0,0,0,2),不是特殊加分项

真正容易被忽略的,是权重比较的“按位”逻辑——它不加总,不进位,更不看长度或位置。你改一行 CSS 却没生效,大概率不是浏览器 bug,而是 b 位差了 1。

热门AI工具

更多
音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

相关专题

更多
python是前端还是后端
python是前端还是后端

Python属于前端也属于后端,其灵活性和丰富的生态系统使得开发人员能够在不同的领域中灵活运用。本专题为大家提供python相关的文章、下载、课程内容,供大家免费下载体验。

2463

2023.08.11

前端如何实现即时通讯
前端如何实现即时通讯

实现即时通讯的方法有WebSocket、Long Polling、Server-Sent Events、WebRTC等等。详细介绍:1、WebSocket,它可以在客户端和服务器之间建立持久连接,实现实时的双向通信,前端可以使用 WebSocket API来创建WebSocket连接,并通过发送和接收消息来实现即时通讯;2、Long Polling,是一种模拟实时通信的技术等等。

5343

2023.10.09

前端和后端的区别
前端和后端的区别

前端关注的是用户界面的设计和交互,而后端则注重数据处理和逻辑控制。想了解更多前端后端的相关内容,可以阅读本专题下面的文章。

6370

2024.03.19

php和前端的关联介绍
php和前端的关联介绍

php既可以作为前端语言,也可以作为后端语言。想了解更多php和前端的相关内容,可以阅读本专题下面的文章。

5978

2024.03.22

前端外包工作内容有哪些
前端外包工作内容有哪些

前端外包工作内容包括:1. 网站和应用程序开发;2. 用户界面和交互设计;3. 用户体验优化;4. 设计和视觉开发;5. 跨浏览器兼容性;6. 性能优化;7. 维护和更新;8. 项目管理和沟通。想了解更多前端的相关内容,可以阅读本专题下面的文章。

843

2024.05.22

css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

4676

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

1017

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1878

2023.07.28

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

0

2026.10.16

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
兄弟连高洛峰CSS3视频教程
兄弟连高洛峰CSS3视频教程

共20课时 | 4.6万人学习

Css3入门基础视频教程
Css3入门基础视频教程

共33课时 | 7.6万人学习

CSS 代码实例
CSS 代码实例

共45课时 | 20万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn