`
yanzhihong23
  • 浏览: 59226 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

计算CSS选择器的特性(选择器优先级)

    博客分类:
  • css3
 
阅读更多

下面是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选择器权重计算及优先级的详细解释: 首先,我们要了解CSS选择器的四个等级及其对应权重: 1. **内联样式**(权重1000):这是最高级别的权重,当直接在HTML元素中使用`style`属性定义样式时,例如`;...

    CSS选择器.pdf

    在CSS选择器的体系中,存在多种不同类型的选择器,每种都有其特定的用途和使用场景。 首先,元素选择符是最基本的类型,包括通配符选择器、标签选择器、id选择器和class选择器。通配符选择器用“*”表示,可以选中...

    css优先级总结

    选择器优先级是指不同类型的CSS选择器在样式冲突时所具有的优先顺序。按照优先级从高到低排序如下: - 内联样式(style属性):权值为1000 - ID选择器:权值为100 - 类选择器(class)、属性选择器、伪类:权值为10...

    react-React组件的css选择器

    在React开发中,CSS选择器是用于特定于组件的样式化的一种强大工具。React组件的样式管理是一个关键的方面,因为它影响着应用的可维护性和性能。本篇将深入探讨React组件与CSS选择器的结合使用,以及如何优化组件的...

    CSS中选择器优先级顺序实战讲解.pdf

    本文将详细解析CSS选择器优先级的实战应用,帮助开发者理解并解决样式覆盖的问题。 首先,我们要了解CSS选择器的四种基本类型,它们的优先级顺序如下: 1. **行内样式 (inline styles)**:这是最高优先级,通过`...

    css样式优先级比较实例

    首先,我们需要了解CSS选择器的权重计算规则。CSS选择器的权重分为四类:内联样式、ID选择器、类选择器/属性选择器/伪类、以及元素选择器/伪元素。它们对应的权重分别是: 1. 内联样式(如`style="..."`):1000 2....

    关于CSS选择器优先级的判断题附结果截图

    总结一下,CSS选择器优先级的计算对于确定元素的最终样式至关重要。在实际应用中,应尽量避免使用高优先级选择器来减少样式的冲突,提高代码的可读性和维护性。理解并熟练运用选择器优先级能够帮助开发者更有效地...

    树使用css选择器优化代码(IE7+,firefox3,opera9,chrom下可用)

    10. **考虑浏览器特性**:不同浏览器对CSS选择器的支持程度不同,尤其是老版本的IE。使用条件注释或者工具如Autoprefixer来确保代码的兼容性。 以上就是关于使用CSS选择器优化代码的一些关键点。在实际应用中,结合...

    CSS标签选择器优先级.pdf

    CSS选择器优先级详解 CSS选择器优先级是CSS样式表中一个非常重要的概念,它决定了CSS样式的应用顺序和优先级。本文将详细介绍CSS选择器优先级的四大原则,以及它们之间的关系和应用。 原则一:继承不如指定 如果...

    一种可视化的方式来分析选择器在CSS中的特殊性

    首先,我们来看看CSS选择器特殊性的计算规则。特殊性分为四个等级: 1. **ID选择器**(#id):每个ID选择器赋予100个单位。 2. **类选择器、属性选择器和伪类**(.class, [attr], :pseudo-class):每个这类选择器...

    CSS 优先级 详细分析

    具体来说,CSS选择器的特殊性由四个部分组成: 1. ID选择器(如#someid):每个ID选择器赋予100分。 2. 类选择器(如.someclass)、属性选择符(如[attr=value])和伪类(如:hover):每个赋予10分。 3. 元素选择器...

    CSS优先级总结.pdf

    在CSS中,有多种选择器可以用来指定样式规则,每种选择器都有其自己的优先级。以下是常见的选择器和它们的优先级: 1. !important:高于所有其他选择器的优先级 2. ID选择器 (#ID):高于类选择器和元素选择器的...

    HTML5&CSS3网页制作:CSS优先级.pptx

    在网页制作中,HTML5和...总结来说,CSS优先级是决定网页元素样式效果的关键因素,包括继承、行内样式、选择器权重以及`!important`指令。通过深入理解和熟练运用这些概念,开发者能够更加高效地控制网页的视觉呈现。

    30个最常用css选择器解析

    "CSS选择器详解" CSS选择器是CSS样式语言中最基本的组成部分,它们定义了样式应用于哪些HTML元素。选择器分为五种基本类型:标签选择器、class选择器、ID选择器、后代选择器和伪类选择器。 1. 星状选择符(*) 星...

    CSS3选择器总结CSS3选择器总结

    CSS选择器有继承性和叠加性的特性。 - 继承性:某些CSS属性可以被子元素继承自其父元素。 - 叠加性:一个元素可以被多个CSS规则选择,并应用这些规则中定义的所有样式。如果不同的选择器定义了相同的样式属性,则...

    CSS优先级计算的规则

    当有多个规则应用于同一元素时,浏览器会根据选择器的类型以及数量计算优先级权重。每种类型的选择器都有一个相应的权重值,当一个选择器具有多个ID选择器时,权重会更高。在计算权重时,可以将权重值视为一个三位数...

    前端css选择器练习diner.zip

    "前端css选择器练习diner.zip" 是一个针对CSS选择器学习和实践的资源包,名为"css-diner"。 在"css-diner"这个练习中,你可以深入理解并掌握各种CSS选择器的用法,从而提升你的前端开发技能。以下是一些关于CSS选择...

    css选择器介绍

    CSS选择器的优先级也是我们需要掌握的关键点: 1. **内联样式**:如`style="..."`,具有最高优先级。 2. **ID选择器**:优先级次之。 3. **类选择器、属性选择器、伪类**:优先级相同,低于ID选择器。 4. **类型...

    Css选择器_案例】仿当当网首页

    在本案例中,通过仿制当当网首页,我们可以学习到CSS选择器的使用、样式的继承、样式的优先级、关键属性、块级和内联元素的区别以及一些常见属性。 CSS是“层叠样式表”(Cascading Style Sheets)的缩写,它描述了...

Global site tag (gtag.js) - Google Analytics