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

CSS级联层样式权重和优先级

CSS 的级联层(Cascade Layers)样式权重(Specificity)优先级(Priority) 是决定浏览器最终采用哪条样式规则的核心机制。
我们可以把它理解为一个“决策流程”:


🧩 一、级联层(Cascade Layers)

层(layer) 是 CSS 从 CSS Cascade Level 5 引入的新概念,用来更清晰地管理不同来源或模块的样式优先级。

1. 定义层

@layer reset, base, theme, components, overrides;

或定义并写入样式:

@layer base {h1 { color: black; }
}
@layer theme {h1 { color: blue; }
}

2. 层的优先级规则

  • 后声明的层优先于先声明的层(类似 z-index)
  • 层内仍然遵守正常的级联规则(!important、权重、源顺序等)
  • 未声明层的样式(普通样式)优先级最低

🧠 顺序优先级示意图(从低到高):

普通样式(无层) < @layer 早声明层 < @layer 晚声明层

例如:

@layer reset {h1 { color: black; }
}
@layer theme {h1 { color: blue; }
}

结果是 h1 为蓝色(themereset 之后)。


⚖️ 二、样式权重(Specificity)

权重决定当多个规则作用在同一元素上时,哪一条更“具体”从而生效。

1. 权重计算规则

选择器类型权重值表示示例权重
内联样式(1,0,0,0)<div style="color:red;">最高
ID 选择器(0,1,0,0)#title {}
类、伪类、属性选择器(0,0,1,0).btn, [type=text], :hover
元素、伪元素选择器(0,0,0,1)div, p::after
通配符、继承、@layer 未定义层(0,0,0,0)*, inherit最低

2. 示例

div p { color: black; }        /* (0,0,0,2) */
p.highlight { color: red; }    /* (0,0,1,1) */
#main p { color: blue; }       /* (0,1,0,1) */

结果是 #main p → 蓝色,因为 ID 权重最高。


🚨 三、优先级(最终级联顺序)

当浏览器确定哪条样式最终生效时,它遵循以下顺序:

  1. 重要性(Importance)

    • !important 的样式优先于非 !important
    • 但层级(layer)也会影响 !important 的比较
  2. 来源(Origin)

    • 用户代理样式(浏览器默认)
    • 用户样式(用户设置)
    • 作者样式(开发者编写)
    • 作者样式通常优先于浏览器默认
  3. 层(Layer)

    • @layer 定义顺序比较
  4. 权重(Specificity)

    • 比较选择器权重
  5. 源代码顺序(Source Order)

    • 同权重、同层时,后声明的覆盖前面

💡 四、!important 与层的结合

@layer base {h1 { color: red !important; }
}
@layer theme {h1 { color: blue !important; }
}

即使两者都有 !important,仍然是后声明的层 (theme) 优先,结果为蓝色。


✅ 五、总结层次关系图(优先级从低到高)

优先级层级示例说明
浏览器默认样式<h1> 默认样式最低
普通无层作者样式h1 {}
@layer 早声明层@layer base {}
@layer 晚声明层@layer theme {}
内联样式style="..."更高
!important 样式color: red !important最高
http://www.dtcms.com/a/482962.html

相关文章:

  • 免费搭建私人网站修改wordpress后台文字
  • 站内推广的方法网络整合营销传播
  • 国际网站建设的目的网站建设预算知乎
  • 瀚海微SD NAND/TF卡:赋能全场景数据存储,定义高效安全新基准
  • 怎样安全地开启MySQL远程管理权限?
  • 建设局网站查询个人信息wordpress首页文章显示固定分类
  • 网站建设多少钱实惠湘潭磐石网络企业网站建设的目的是什么
  • 知微传感Dkam系列3D相机SDK例程篇:Python设置相机触发模式
  • Java 故障分析与性能调优命令详解(含案例)
  • 【Pytorch】激活函数 Loss 梯度 超详细文本笔记
  • 不同材质金冠钳的力学性能及其对修复体就位影响研究
  • vs2015做网站的后端个人怎么做百度竞价
  • 微信小程序入门学习教程,从入门到精通,项目实战:美妆商城小程序 —— 知识点详解与案例代码 (18)
  • 微信小程序添加水印功能
  • 02_ES索引规范kibana
  • 购物网站建设模板图片价格低的跑车
  • LeetCode hot100:049 字母异位词分组:两种解法的深度解析
  • 网站建设业务前景政务信息网站建设制度
  • 使用C#写微信小程序后端——电商微信小程序
  • C++——vector容器、动态容器
  • C++ 类与对象(下篇)笔记整理
  • 重庆建站服务商漳浦网站开发
  • 深入浅出理解电感:从理论到实践的电路“惯性”元件
  • 分布式事务:基于MQ事务的解决方案详解
  • 无信息先验:贝叶斯分析中的客观基准
  • 公司官网备案流程mysql优化 wordpress
  • 网站建设员课程注册网页版
  • 瑞莎星瑞(Radxa Orion O6) 基于 Android OS 使用 NPU的图片模糊查找APP 开发
  • 户外商品网站制作长沙网站建设的公司
  • 安卓13_ROM修改定制化-----ROM解打包 修改 讲解 导读篇