CSS 选择器权重计算规则
字数:589,预计阅读时间:3min
CSS 选择器(Selector)的权重(Specificity)决定了对于同一元素,到底哪一条 CSS 规则会生效。且仅有当多条 CSS 规则都对同一元素声明了相应样式时,才会涉及到权重计算的问题。 选择器的分类正式计算选择器权重之前,先来看选择器是如何被分类的。 因为 CSS 选择器众多,在计算时,这些选择器被归为了三大类,按其权重由大到小依次为:
其中两类特殊的样式会影响权重的生效,
其他选择器,
以上,对权重的计算没影响,即不参与计算。 权重的计算根据以上对选择器的分类,对任意样式规则,可得到
对于同一元素身上的多条样式,对第条样式规则计算出上面四个值,然后从左往右逐个比较,数字大的胜出。 如果权重全部一样,后面的规则会生效。 示例示例一考察下面的示例代码: <ul class="list">
<li class="list-item">item1</li>
<li class="list-item">item2</li>
<li class="list-item">item3</li>
</ul> ul > li {
color: blue
}
两者一对比,在进行到第三位时,后面的 2>0,所以后者胜出,它的样式将生效,列表颜色为红色。 示例二<nav id="nav">
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
</nav> nav#nav > li:hover{
color: purple;
}
一对比,前者胜出,因为比较到第二位时,前者是 1 后者是 0。只要有大于的情况,后面的值就不用比较了。 因此列表中元素在 hover 时,会是紫色(purple)。 相关资源 |

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述