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

CSS 选择器的优先级/层叠性

一. 简介

      CSS 选择器的优先级(也称为层叠顺序特异性)决定了当多个规则应用于同一个元素时,哪个规则会被最终应用。优先级由高到低如下:

1. !important (最高优先级)

  • 在属性值后面添加 !important 可以强制覆盖其他所有规则。
  • 注意:应谨慎使用,因为它会使调试和维护变得困难,破坏了 CSS 的自然层叠。
  • 示例
    p {color: red !important;
    }

2. 内联样式 (Inline Styles)

  • 直接写在 HTML 元素的 style 属性中的样式。
  • 示例
    <p style="color: blue;">这段文字是蓝色的</p>

3. ID 选择器

  • 使用 # 定义的选择器。
  • 示例
    #myId {color: green;
    }

4. 类选择器 (Class)、属性选择器 (Attribute)、伪类 (Pseudo-classes)

  • 这三者的优先级相同。
  • 示例
    .myClass { color: purple; }           /* 类选择器 */
    [type="text"] { width: 200px; }       /* 属性选择器 */
    a:hover { text-decoration: underline; } /* 伪类 */

5. 元素选择器 (Type)、伪元素 (Pseudo-elements)

  • 使用 HTML 标签名的选择器和伪元素。
  • 示例
    p { font-size: 16px; }                /* 元素选择器 */
    ::before { content: ""; }             /* 伪元素 */

6. 通配符选择器、组合符、inheritinitial 等 (最低优先级)

  • 包括 *+>~|| 等。
  • 示例
    * { margin: 0; padding: 0; }

二. 优先级计算(重点)

当优先级相同时,浏览器会通过计算“特异性”来决定。特异性通常用一个四元组表示:(a, b, c, d)

  • a:内联样式的数量(style="")→ 1000
  • b:ID 选择器的数量 → 100
  • c:类、属性、伪类选择器的数量 → 10
  • d:元素、伪元素选择器的数量 → 1

注意!important 不参与此计算,它直接最高。

计算示例:
/* 选择器: #nav .list li.active */
/* ID: 1 → 100, 类: 2 → 20, 元素: 2 → 2 */
/* 特异性: (0, 1, 2, 2) = 122 *//* 选择器: ul#menu li a:hover */
/* ID: 1 → 100, 类/伪类: 1 → 10, 元素: 3 → 3 */
/* 特异性: (0, 1, 1, 3) = 113 *//* 结论:第一个选择器优先级更高 */

⚠️ 重要规则总结:

  1. !important > 内联样式 > ID > 类/属性/伪类 > 元素/伪元素
  2. 特异性值越高,优先级越高。
  3. 相同优先级时,后出现的规则胜出(后来者居上)。
  4. 继承的样式优先级最低。
http://www.xdnf.cn/news/1463635.html

相关文章:

  • watchEffect 与 watch的区别
  • 双轴倾角传感器厂家与物联网角度传感器应用全解析
  • MySQL】从零开始了解数据库开发 --- 表的操作
  • 盘点完今年CoRL最火的VLA论文,发现最强的机器人,竟是用“假数据”喂大的
  • 前端视觉交互设计全解析:从悬停高亮到多维交互体系(含代码 + 图表)
  • “我店”模式:热潮中的商机还是泡沫陷阱?深度解析当前入局可行性
  • 阿里云vs腾讯云按量付费服务器
  • 腾讯云大模型训练平台
  • BigDecimal的使用
  • 【AndroidStudio】官网下载免安装版,AndroidStudio压缩版的配置和使用
  • 华为网路设备学习-32(BGP协议 七)路由反射器与联邦
  • 中小企业数字化转型卡在哪?选对AI工具+用好企业微信,人力成本直降70%
  • SQLalachemy 错误 - Lost connection to MySQL server during query
  • 功能强大的多线程端口扫描工具,支持批量 IP 扫描、多种端口格式输入、扫描结果美化导出,适用于网络安全检测与端口监控场景
  • 基于SpringBoot的旅游管理系统的设计与实现(代码+数据库+LW)
  • 零基础直奔HCIE?先打好基础,后续才更轻松!
  • Redis 深度解析:数据结构、持久化与集群
  • 【Linux手册】动静态库:从原理到制作
  • mcp_clickhouse代码学习
  • 大彩串口屏-烧录与调试
  • 解决微信小程序开发初始化npm install包失败
  • uniapp阿里云验证码使用
  • Java观察者模式
  • 【Linux游记】基础指令篇
  • 关于CAN总线bus off 理论标准 vs 工程实践
  • XX汽集团数字化转型:全生命周期网络安全、数据合规与AI工业物联网融合实践
  • 数据可视化工具推荐:5款让图表制作轻松上手的神器
  • 23ai数据库通过SQLcl生成AWR报告
  • 【FastDDS】Layer Transport ( 01-overview )
  • 五年霸榜|悬镜安全持续引领《2025年中国网络安全市场全景图》DevSecOps开发安全赛道