下面是W3官方的描述
A selector's specificity is calculated as follows:
- count the number of ID selectors in the selector (= a)
- count the number of class selectors, attributes selectors, and pseudo-classes in the selector (= b)
- count the number of type selectors and pseudo-elements in the selector (= c)
- ignore the universal selector
Selectors inside the negation pseudo-class are counted like any other, but the negation itself does not count as a pseudo-class.
简单的翻译下:
- 计算ID选择器的个数(= a)
- 计算类选择器、属性选择器、伪类的个数(= b)
- 计算类型(标签tag)选择器、伪元素的个数(= c)
- 忽略通用选择器(*)
在否定的伪类里面的选择器同样按照上面的方法计算,但否定的伪类本身不做计算。
最后连接这三个数值来表示特性:a-b-c
可以看下下面的例子:
* /* a=0 b=0 c=0 -> specificity = 0 */ LI /* a=0 b=0 c=1 -> specificity = 1 */ UL LI /* a=0 b=0 c=2 -> specificity = 2 */ UL OL+LI /* a=0 b=0 c=3 -> specificity = 3 */ H1 + *[REL=up] /* a=0 b=1 c=1 -> specificity = 11 */ UL OL LI.red /* a=0 b=1 c=3 -> specificity = 13 */ LI.red.level /* a=0 b=2 c=1 -> specificity = 21 */ #x34y /* a=1 b=0 c=0 -> specificity = 100 */ #s12:not(FOO) /* a=1 b=0 c=1 -> specificity = 101 */
有一点要注意的是,b、c是不进位的。就是说b再大也不会改变a的值,c再大也不会改变b的值。
相关推荐
以下是关于CSS选择器权重计算及优先级的详细解释: 首先,我们要了解CSS选择器的四个等级及其对应权重: 1. **内联样式**(权重1000):这是最高级别的权重,当直接在HTML元素中使用`style`属性定义样式时,例如`;...
在CSS选择器的体系中,存在多种不同类型的选择器,每种都有其特定的用途和使用场景。 首先,元素选择符是最基本的类型,包括通配符选择器、标签选择器、id选择器和class选择器。通配符选择器用“*”表示,可以选中...
选择器优先级是指不同类型的CSS选择器在样式冲突时所具有的优先顺序。按照优先级从高到低排序如下: - 内联样式(style属性):权值为1000 - ID选择器:权值为100 - 类选择器(class)、属性选择器、伪类:权值为10...
在React开发中,CSS选择器是用于特定于组件的样式化的一种强大工具。React组件的样式管理是一个关键的方面,因为它影响着应用的可维护性和性能。本篇将深入探讨React组件与CSS选择器的结合使用,以及如何优化组件的...
本文将详细解析CSS选择器优先级的实战应用,帮助开发者理解并解决样式覆盖的问题。 首先,我们要了解CSS选择器的四种基本类型,它们的优先级顺序如下: 1. **行内样式 (inline styles)**:这是最高优先级,通过`...
首先,我们需要了解CSS选择器的权重计算规则。CSS选择器的权重分为四类:内联样式、ID选择器、类选择器/属性选择器/伪类、以及元素选择器/伪元素。它们对应的权重分别是: 1. 内联样式(如`style="..."`):1000 2....
总结一下,CSS选择器优先级的计算对于确定元素的最终样式至关重要。在实际应用中,应尽量避免使用高优先级选择器来减少样式的冲突,提高代码的可读性和维护性。理解并熟练运用选择器优先级能够帮助开发者更有效地...
10. **考虑浏览器特性**:不同浏览器对CSS选择器的支持程度不同,尤其是老版本的IE。使用条件注释或者工具如Autoprefixer来确保代码的兼容性。 以上就是关于使用CSS选择器优化代码的一些关键点。在实际应用中,结合...
CSS选择器优先级详解 CSS选择器优先级是CSS样式表中一个非常重要的概念,它决定了CSS样式的应用顺序和优先级。本文将详细介绍CSS选择器优先级的四大原则,以及它们之间的关系和应用。 原则一:继承不如指定 如果...
首先,我们来看看CSS选择器特殊性的计算规则。特殊性分为四个等级: 1. **ID选择器**(#id):每个ID选择器赋予100个单位。 2. **类选择器、属性选择器和伪类**(.class, [attr], :pseudo-class):每个这类选择器...
具体来说,CSS选择器的特殊性由四个部分组成: 1. ID选择器(如#someid):每个ID选择器赋予100分。 2. 类选择器(如.someclass)、属性选择符(如[attr=value])和伪类(如:hover):每个赋予10分。 3. 元素选择器...
在CSS中,有多种选择器可以用来指定样式规则,每种选择器都有其自己的优先级。以下是常见的选择器和它们的优先级: 1. !important:高于所有其他选择器的优先级 2. ID选择器 (#ID):高于类选择器和元素选择器的...
在网页制作中,HTML5和...总结来说,CSS优先级是决定网页元素样式效果的关键因素,包括继承、行内样式、选择器权重以及`!important`指令。通过深入理解和熟练运用这些概念,开发者能够更加高效地控制网页的视觉呈现。
"CSS选择器详解" CSS选择器是CSS样式语言中最基本的组成部分,它们定义了样式应用于哪些HTML元素。选择器分为五种基本类型:标签选择器、class选择器、ID选择器、后代选择器和伪类选择器。 1. 星状选择符(*) 星...
CSS选择器有继承性和叠加性的特性。 - 继承性:某些CSS属性可以被子元素继承自其父元素。 - 叠加性:一个元素可以被多个CSS规则选择,并应用这些规则中定义的所有样式。如果不同的选择器定义了相同的样式属性,则...
当有多个规则应用于同一元素时,浏览器会根据选择器的类型以及数量计算优先级权重。每种类型的选择器都有一个相应的权重值,当一个选择器具有多个ID选择器时,权重会更高。在计算权重时,可以将权重值视为一个三位数...
"前端css选择器练习diner.zip" 是一个针对CSS选择器学习和实践的资源包,名为"css-diner"。 在"css-diner"这个练习中,你可以深入理解并掌握各种CSS选择器的用法,从而提升你的前端开发技能。以下是一些关于CSS选择...
CSS选择器的优先级也是我们需要掌握的关键点: 1. **内联样式**:如`style="..."`,具有最高优先级。 2. **ID选择器**:优先级次之。 3. **类选择器、属性选择器、伪类**:优先级相同,低于ID选择器。 4. **类型...
在本案例中,通过仿制当当网首页,我们可以学习到CSS选择器的使用、样式的继承、样式的优先级、关键属性、块级和内联元素的区别以及一些常见属性。 CSS是“层叠样式表”(Cascading Style Sheets)的缩写,它描述了...