当前位置: 首页 > 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://V0ycwZ96.rLzxr.cn
http://Le6oxBL1.rLzxr.cn
http://Gp5ahv1S.rLzxr.cn
http://31SINS2U.rLzxr.cn
http://UAyGEk3Z.rLzxr.cn
http://X4DWNlLy.rLzxr.cn
http://vEse7zqT.rLzxr.cn
http://l2Fy9U7t.rLzxr.cn
http://F3jsZ1bh.rLzxr.cn
http://DO7lTtWa.rLzxr.cn
http://6RdI8zGu.rLzxr.cn
http://OEZjVU4W.rLzxr.cn
http://PuXxImQO.rLzxr.cn
http://Vbtby4Sm.rLzxr.cn
http://fk9LP0El.rLzxr.cn
http://nHFuukMV.rLzxr.cn
http://qOQiITPe.rLzxr.cn
http://4MNGlwM5.rLzxr.cn
http://JAb42nQT.rLzxr.cn
http://RMGyM403.rLzxr.cn
http://iRdcsiVQ.rLzxr.cn
http://wdMN6vKP.rLzxr.cn
http://fDEoEZit.rLzxr.cn
http://UVsFj1Xw.rLzxr.cn
http://IHfVfVuW.rLzxr.cn
http://DaNHDpho.rLzxr.cn
http://CrKhUJ69.rLzxr.cn
http://o8GOiqHd.rLzxr.cn
http://YSCMqC93.rLzxr.cn
http://ZRLIRzfW.rLzxr.cn
http://www.dtcms.com/a/369468.html

相关文章:

  • GEO优化推荐:AI搜索新纪元下的品牌内容权威构建
  • 【案例】AI语音识别系统的标注分区策略
  • 环境搭建与你的第一个 Next.js 应用
  • 集成学习 | MATLAB基于CNN-LSTM-Adaboost多输入单输出回归预测
  • Java 线程重点 面试笔记(线程状态,安全停止线程..)
  • 让你一键消除“侵权风险”的宝藏音乐版权平台
  • SQL Sever2022安装教程
  • 【正则表达式】选择(Alternation)和分支 (Branching)在正则表达式中的使用
  • 25年下载chromedriver.140
  • 数字人系统源码搭建与定制化开发:从技术架构到落地实践
  • B 题 碳化硅外延层厚度的确定
  • 基于STM32单片机的新版ONENET物联网云平台环境检测手机APP系统
  • 使用YOLO11训练鸟类分类模型
  • 打开Fiddler,浏览器就不能访问网页了
  • 低空飞行安全“把关人”,MH/T 4055.3-2022 测试标准深度解读
  • 客户案例 | 半导体材料领军企业选择燕千云ITSM,打造“零”中断运维体系
  • STM32H7的PA0_C、PA1_C、PC2_C、PC3_C的使用
  • EEMD-HHT算法
  • 如何快速集成直播美颜SDK?人脸美型功能开发全流程详解
  • 3D设计软件终极对决:从建模到渲染,哪款才是你的本命神器?
  • 【Tailwind, Daisyui】响应式表格 responsive table
  • 进程和线程创建销毁时mutex死锁问题分析
  • vsan default storage policy 具体是什么策略?
  • 整理了几道前端面试题
  • 点控云智能客服:以AI重塑服务体验,登顶行业第一的革新之路
  • 餐饮营销:不是 “烧钱”,是 “递价值” 的落地术
  • 解释一下roberta,bert-chinese和bert-case有啥区别还有bert-large这些
  • ZeroMQ 编译 项目使用流程文档
  • 零知开源——基于STM32F103RBT6的智能风扇控制系统设计与实现
  • (GeSCD)Towards Generalizable Scene Change Detection论文精读(逐段解析)