【CSS 选择器世界】CSS 优先级规范概览

简介: CSS 优先级规范概览

正文


一、CSS 优先级规则概览


CSS 选择器有着明显的不可逾越的等级制度,分为 0~5 这 6 个等级,其中前 4 个等级由 CSS 选择器决定,后 2 个等级由书写形式和特定语法决定。


  • 0级:通配选择器、选择符和逻辑组合伪类;


* { color: #000; }


  • 通配符指 空格、>、+、~ 和 ||
    逻辑组合伪类有 :not():is():where 等,这些伪类本身不影响 CSS 优先级,影响优先级的是括号里面的选择器。


:not() {}


  • 1级:标签选择器;


body { color: #333; }


  • 2级:类选择器、属性选择器、伪类;


.foo { color: #666; }
[foo] { color: #666; }
:hover { color: #333; }


  • 3级:ID 选择器;


#foo { color: #999; }


  • 4级:style 属性内联;


<span style="color: #ccc;">优先级</span>


  • 5级:!important。important 是顶级优先级,可以重置 JavaSript 设置的样式,唯一推荐使用场景就是使 JavaScript 设置失效。对于其他场景,没有任何使用它的理由,切勿滥用。


.foo[style*="color: #ccc"] {
  color: #fff !important;
}



不难看出,CSS 选择器的优先级(0 级至 3 级)属于 CSS 优先级的一部分,也是最重要、最复杂的部分,学会 CSS 选择器的优先级等同于学会了完整的 CSS 优先级规则。


二、CSS 选择器的计算规则


每一段 CSS 语句的选择器都可以对应一个具体的数值,数值越大优先级越高,其中的 CSS 语句将被优先渲染。其中,出现一个 0 级选择器,优先级数值 +0;出现一个 1 级选择器,优先级数值 +1;出现一个 2 级选择器,优先级数值 +10;出现一个 3 级选择器,优先级数值 +100。


选择器 计算值 计算细则
* { } 0 1 个 0 级统配选择器,优先级数值为 0
dialog { } 1 1 个 1 级标签选择器,优先级数值为 1
ul > li { } 2 2 个 1 级标签选择器,1 个 0 级选择符,优先级数值为 1 + 0 + 1
li > ol + ol { } 3 3 个 1级标签选择器,2 个 0级选择符,优先级数值为 1 + 0 + 1 + 0 + 1
.foo { } 10 1 个 2 级类名选择器,优先级数值为 10
a:not([rel=nofoolow]) { } 11 1 个 1 级标签选择器,1 个 0 级否定伪类选择器,1 个 2 级属性选择器,优先级数值为 1 + 0 + 10
a:hover { } 11 1 个 1 级标签选择器,1 个 2级伪类,优先级数值为 1 + 10
ol li.foo { } 12 1 个 2 级伪类选择器,2 个 1 级标签选择器,优先级数值为 10 x 2 + 1
li.foo.bar { } 21 2 个 2 级类名选择器,1 个 1 级标签选择器,有限计数值为 2 x 10 + 1
#foo { } 100 1 个 3 级 ID 选择器,优先级数值为 100
#foo .bar p { } 111 1 个 3级 ID 选择器,2 个 0 级选择符,1 个 3 级类名选择器,1 个 1 级标签选择器,优先级数值为 100 + 2 x 0 + 10 + 1


目录
相关文章
|
5月前
|
前端开发
CSS:高级选择器
CSS:高级选择器
66 1
|
5月前
|
前端开发 JavaScript
CSS:基础选择器
CSS:基础选择器
75 1
|
3月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
86 5
|
3月前
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
80 2
|
5月前
|
前端开发 JavaScript 容器
谁动了我的选择器?深入理解CSS选择器优先级
该文章详细解释了CSS选择器的工作原理,包括不同种类选择器的权重计算规则,并通过实例说明了如何解决样式冲突问题,确保所需的样式能够正确应用到目标元素上。
|
5月前
|
前端开发
前端基础(四)_CSS层叠样式表_什么是css_css样式的引入方式_样式表的优先级_样式选择器
本文详细介绍了CSS(层叠样式表)的基本概念、语法规则、引入方式、样式表的优先级和样式选择器。文章解释了CSS的作用,展示了如何在HTML中通过行内样式、内部样式和外部样式引入CSS,讨论了不同CSS选择器的优先级和如何确定最终的样式应用。此外,还强调了使用`!important`规则时的优先级高于行内样式。
189 1
|
5月前
|
缓存 前端开发
css内部样式和外部样式的性能比较和使用规范
CSS 的内部样式和外部样式各有优缺点,适用于不同场景。
|
4月前
|
前端开发
CSS常见的选择器
CSS常见的选择器
41 0
|
5月前
|
前端开发 JavaScript
【CSS】选择器
【CSS】选择器
|
6月前
|
前端开发
CSS3选择器
【8月更文挑战第23天】CSS3选择器。
45 1

热门文章

最新文章