当前位置: 首页 > news >正文

CSS 特指度 (Specificity)

是一套计算规则,用于确定当多个CSS规则冲突时,哪个选择器更“具体”、更“特殊”,从而优先级更高。

特指度(Specificity)计算细节

特指度通常表示为 (a, b, c, d) 的形式:

  • a: 是否使用内联样式(1或0)

  • b: ID选择器的数量

  • c: 类、属性、伪类选择器的数量

  • d: 元素、伪元素选择器的数量

比较时从左到右逐级比较,如(1,0,0,0) > (0,2,0,0)

1.内联样式 vs ID选择器

<div id="myDiv" style="color: red;">Hello World</div><style>
#myDiv {color: blue; /* 不会生效 */
}
</style>

特指度比较: (1,0,0,0) > (0,1,0,0)
特指度说明: (内联样式1个, ID选择器0个, 类选择器0个, 元素选择器0个) > (内联样式0个, ID选择器1个, 类选择器0个, 元素选择器0个)

2.多个ID选择器 vs 单个ID选择器

#header #title {color: red; /* 生效 */
}#content {color: blue; /* 不会生效 */
}

特指度比较: (0,2,0,0) > (0,1,0,0)
特指度说明: (内联样式0个, ID选择器2个, 类选择器0个, 元素选择器0个) > (内联样式0个, ID选择器1个, 类选择器0个, 元素选择器0个)

3.ID选择器 vs 多个类选择器

#main-content {color: red; /* 生效 */
}.container .article .text {color: blue; /* 不会生效 */
}

特指度比较: (0,1,0,0) > (0,0,3,0)
特指度说明: (内联样式0个, ID选择器1个, 类选择器0个, 元素选择器0个) > (内联样式0个, ID选择器0个, 类选择器3个, 元素选择器0个)

4.类选择器组合 vs 单个类选择器

nav.menu li.item a {color: red; /* 生效 */
}.special-link {color: blue; /* 不会生效 */
}

特指度比较: (0,0,2,3) > (0,0,1,0)
特指度说明: (内联样式0个, ID选择器0个, 类选择器2个, 元素选择器3个) > (内联样式0个, ID选择器0个, 类选择器1个, 元素选择器0个)

5.同等特指度 - 后者优先

div.content p {color: red; /* 不会生效 */
}.container > p {color: blue; /* 生效 */
}

特指度比较: (0,0,1,2) = (0,0,1,1)
特指度说明: 两者特指度相同,都是(内联样式0个, ID选择器0个, 类选择器1个, 元素选择器X个),后者覆盖前者

6.伪类和属性选择器

form input[type="text"]:focus {border-color: red; /* 生效 */
}.input-focused {border-color: blue; /* 不会生效 */
}

特指度比较: (0,0,2,1) > (0,0,1,0)
特指度说明: (内联样式0个, ID选择器0个, 类/属性/伪类选择器2个, 元素选择器1个) > (内联样式0个, ID选择器0个, 类选择器1个, 元素选择器0个)

7.通用选择器不影响特指度

body #content * {color: red; /* 生效 */
}#content {color: blue; /* 不会生效 */
}

特指度比较: (0,1,0,1) > (0,1,0,0)
特指度说明: (内联样式0个, ID选择器1个, 类选择器0个, 元素选择器1个) > (内联样式0个, ID选择器1个, 类选择器0个, 元素选择器0个)
注意: 通用选择器(*)不增加特指度

8.否定伪类(:not)的特殊性

div:not(.special) {color: red; /* 不会生效 */
}div.normal {color: blue; /* 生效 */
}

特指度比较: (0,0,1,1) = (0,0,1,1)
特指度说明: 两者特指度相同,:not伪类本身不增加特指度,但其中的选择器(.special)会计入特指度计算,后者覆盖前者


文章转载自:

http://fO7bF94S.bswxt.cn
http://WX592j28.bswxt.cn
http://ft3K2DA3.bswxt.cn
http://LSHeM2X5.bswxt.cn
http://nhZlQVaS.bswxt.cn
http://rrQiHY4m.bswxt.cn
http://0eSeDMY0.bswxt.cn
http://Av15L4eO.bswxt.cn
http://vXs9nche.bswxt.cn
http://fY34jV46.bswxt.cn
http://LLYCGdwi.bswxt.cn
http://jqxImrWa.bswxt.cn
http://GUHGVKcC.bswxt.cn
http://H9sRRKte.bswxt.cn
http://0Yo3D0gY.bswxt.cn
http://DJbjhO55.bswxt.cn
http://VtWTfzvQ.bswxt.cn
http://PPQUvYZl.bswxt.cn
http://MK6RyXzO.bswxt.cn
http://KoIW0Ol7.bswxt.cn
http://g6TdfLz1.bswxt.cn
http://aHP4AaP8.bswxt.cn
http://evrOFyo8.bswxt.cn
http://VwVZGxUF.bswxt.cn
http://V4FgeK8l.bswxt.cn
http://UyruqS5r.bswxt.cn
http://5jdW5IoL.bswxt.cn
http://oYMaFkqD.bswxt.cn
http://hDx58TlL.bswxt.cn
http://ASFf6T6V.bswxt.cn
http://www.dtcms.com/a/377655.html

相关文章:

  • 数据结构(C语言篇):(十一)二叉树概念介绍
  • 【go语言 | 第1篇】Go环境安装+go语言特性
  • 嵌入式面试题(4)
  • Python中的getattr/setattr和pybind11中的attr相關函數
  • Qt之Model/View架构
  • 龙虎榜——20250910
  • 嵌入式系统
  • Ngrok vs 飞网:内网穿透工具对比指南
  • 计算机毕设 java 高校家教平台 基于 SSM 框架的高校家教服务平台 Java+MySQL 的家教预约与课程管理系统
  • 招聘智能化浪潮:AI面试工具如何重塑招聘格局?
  • Java EE servlet与MySQL表单 工程实现增加查询数据
  • 上网管理行为-路由模式部署
  • Omni-UI:58同城鸿蒙ArkUI精心打造的UI组件库使用
  • 六自由度Stewart并联机器人simulink建模与模拟仿真
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘sympy’问题
  • 测试之道:从新手到专家实战(四)
  • 基于elementUI实现一个可编辑的表格(简洁版)
  • 智能美妆功能开发指南:直播美颜sdk的架构与算法解析
  • MySQL 浮点数、定点数与位类型:搞懂 3 类特殊数值的核心用法
  • 运动生理实验室解决方案 人体生理实验整体解决方案
  • Ping命令为何选择ICMP而非TCP/UDP?
  • 工业锅炉的“健康卫士”—状态监测与故障诊断
  • 大模型微调技术宝典:Transformer架构,从小白到专家
  • 同步框架与底层消费机制解决方案梳理
  • 计算机毕设 java 高校教材管理系统 基于 Java+SSM 的高校教材管控平台 Java+MySQL 的教材全流程管理系统
  • 用分层架构打造单体应用
  • TCP 拥塞控制设计空间课程要点总结
  • 工业网络融合:DEVICENET转PROFINET网关在汽车总装车间的应用
  • AI当调色总监用,合成图一秒融入,甲方看了都说绝
  • 深入浅出CRC校验:从数学原理到单周期硬件实现 (1) 初始CRC校验