了解 CSS 选择器优先级/特异性

2024-02-08

我想了解 CSS 选择器如何处理属性冲突。如何选择一种财产而不是另一种财产?

div {
  background-color: red;
}

div.my_class {
  background-color: black;
}

div#my_id {
  background-color: blue;
}

body div {
  background-color: green;
}

body>div {
  background-color: orange;
}

body>div#my_id {
  background-color: pink;
}
<div id="my_id" class="my_class">hello</div>

选择器优先级如何工作?


我将添加一个指向 CSS 2.1 规范本身的链接,以及浏览器是如何工作的supposed计算特异性:

CSS 2.1 第 6.4.3 节 http://www.w3.org/TR/CSS2/cascade.html#specificity:

选择器的特异性计算如下:

  • 如果声明来自“style”属性而不是带有选择器的规则,则计数 1,否则计数 0 (= a)(在 HTML 中,元素“style”属性的值是样式表规则。这些规则没有选择器,所以a=1,b=0,c=0,d=0。)
  • 计算选择器中 ID 属性的数量 (= b)
  • 计算选择器中其他属性和伪类的数量 (= c)
  • 计算选择器中元素名称和伪元素的数量 (= d)
  • 特异性仅基于选择器的形式。特别是,“[id=p33]”形式的选择器被视为属性选择器(a=0、b=0、c=1、d=0),即使 id 属性被定义为“ID ” 在源文档的 DTD 中。

连接四个数字 a-b-c-d(在具有大基数的数字系统中)给出了特异性。

如果特异性相同,那么CSS 2.1 第 6.4.1 节 https://www.w3.org/TR/CSS2/cascade.html#cascading-order发挥作用:

  1. 最后,按指定的顺序排序:如果两个声明具有相同的权重、来源和特异性,则指定的后者获胜。导入样式表中的声明被视为位于样式表本身中的任何声明之前。

请注意,这里讨论的是样式定义的时间,而不是使用的时间。如果上课.a and .b具有相同的特异性,以最后定义的为准在样式表中 wins. <p class="a b">...</p> and <p class="b a">...</p>根据定义顺序,样式将相同.a and .b.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

了解 CSS 选择器优先级/特异性 的相关文章

  • 空的 HTML5 页面仍然会溢出并在移动设备上触发滚动条

    我期望的是一个不会溢出的页面 因为没有内容 因此不需要滚动 但我得到的是一个空页面 但它仍然滚动 而不仅仅是触摸事件上出现的滚动条的美观问题 它实际上偏移了视口中的背景 我一直在尝试谷歌向我提供的一切 以确保主体块的宽度和高度等于视口的大小
  • MouseOver 不会在重叠的 div 上冒泡?

    使用 jQuery 2 1 Meyer 2 0 CSS重置脚本 http meyerweb com eric tools css reset 针对 IE9 和现代浏览器 我制作了两个重叠的 div 我在听mouseover and mous
  • 主页加载方式与其他页面不同[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 为什么我的主页宽度是 1024 px
  • jQuery:在视口中居中 fancybox

    我目前正在使用 fancybox 版本 2 在单击缩略图时显示我的图像 但我似乎无法让 fancybox 位于视口的中间 垂直而言 因为水平方向没问题 我已经尝试了很多事情 这是最新的 CSS fancybox wrap position
  • 水平居中包含浮动 li 元素的

    我一直在尝试制作一个带有悬停下拉菜单的水平导航栏 我已经让它工作了 但是为了让 中的所有元素并排 水平 它们必须应用 float left 有什么办法让他们回到中心吗 另外 我的 CSS 编码风格 正确吗 我觉得我做错了 谢谢 HTML d
  • rvest如何通过id选择特定的css节点

    我正在尝试使用 rvest 包从网页中抓取数据 简单来说 html 代码如下所示 div class style div
  • 我可以使用 CSS 或脚本设置禁用控件的样式吗?

    我有一个 HTMLdiv页面上的元素在以下情况下更新select页面上的元素发生变化 有时 input需要根据选择禁用标签 文本框 问题是 项目涉众喜欢该功能 他们只是认为在 禁用 状态下 文本框内容太浅 因此不可读 我可以将 CSS 应用
  • Anchor Cycler / 下拉菜单定期导入学校班级数据

    SO 我最近一直在研究一些 html javascript css 为我的学生创建一个在线表格来查看详细信息 分数和各种信息 但我遇到了困难 不确定如何做我正在尝试的事情去做 我将所有这些内容发布在一个线程中的原因是因为我认为其中几个可能会
  • TransitionEnd 事件未触发?

    我有多个元素 每个元素都以 某种程度上 持续时间进行动画处理 我使用 CSS3 过渡 jQuery 库和transitionend辅助函数来自大卫 沃尔什 https davidwalsh name css animation callba
  • 将按钮固定到容器的底角

    我正在使用 Flexbox 使表单垂直和水平居中 在此表单中 我想将一个按钮固定到 Flexbox 容器的右下角 我不知道如何将按钮固定在右下角 html body height 100 container height 100 displ
  • 禁用输入字段上的文本选择

    我正在使用 IBM Worklight HTML5 CSS3 和 javascript 开发混合应用程序 有没有可能的方法来禁用输入字段上的文本选择 我的屏幕上有一个用户名和密码字段 并且希望禁止用户在输入字段中选择文本 另外 应禁用复制粘
  • 为什么 inline-block 会根据子元素的宽度自动调整宽度?

    如果这个问题已经在 stackoverflow 上提出过 请纠正我 如果确实如此 我深表歉意 但我已经寻找了一段时间并且只找到了hows not whys 我的问题是 父 div 似乎会自动占据页面的整个宽度 除非 display inli
  • 的 CSS margin-top 影响父级的边距

    我已经研究这个问题有一段时间了 但还没有找到直接的答案 当向元素添加页边距顶部时 就我而言 它主要发生在标题上 在许多情况下 边距顶部是与父级共享的 HTML div h1 My title h1 div CSS div padding 2

  • jQuery:如何将 jQuery 日期选择器放入 Bootstrap Popover 中? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我试图在引导弹出窗口中显示 jquery datepicker 并尝试了解决方案引导程序弹出窗口内的日期选择器 关闭 https
  • 自定义 Vim HTML 语法

    我有一个脚本可以读取 HTML 文件并替换出现的 foo 具有 Perl 设置的值 像这样的东西 span class hi mom span 会在浏览器中产生类似这样的内容 span class classyclass Hello Wor
  • css 表格单元格,内容有不必要的上边距

    我在代码中使用 div 块的表格单元格排列 我的代码有问题 我的 html 的预览是here http jsbin com avozik 10 edit preview 当我的第一个面板中有任何内容 文本或图像 时 inner第二个和第三个
  • 角度材料在一个表单字段中输入和选择

    I want the input field and the drop down field in the same area like the one on the left I did this on the inspector 无论我
  • 角度按钮单击旋转图标

    我有以下按钮
  • PHP 在数组内循环

    我怎样才能在一个内部循环array在我的代码中 这是我的脚本的静态版本 val array array value gt Male label gt Male array value gt Female label gt Femal my
  • 如何在C#中使用默认浏览器打开带有锚点(#)的html文件

    我正在尝试在 C 中打开上下文帮助文件 当我没有指定锚点时 它工作得很好 Process Start C Help Help htm 但是当我指定锚点时 它不会打开 Process Start C Help Help htm Toc3420

随机推荐

  • 如何从 n x n 矩阵生成等值线图?

    我有一个 n x n 矩阵称为o potential填充了一些值 并希望从中生成等高线图 我尝试了几种方法但没有成功 这就是我现在所拥有的 n 20 x arange 0 n 1 y arange 0 n 1 plt contourf x
  • 唯一标识 JavaScript 中的函数

    有什么方法可以唯一地标识一个函数而不给它一个 Expando 属性 我一直只是使用 toString 来标识函数 但是当两个函数相同时 它们会发生冲突 以下示例代码重现了该问题 在我的实际代码中 关联数组 myfunctions 的键也是根
  • 为什么我的 MKPointAnnotation 不是自定义的?

    我的 MKPointAnnotation 应该使用此代码进行自定义 MKPointAnnotation setAnnotation NSString title atLocation CLLocationCoordinate2D Locat
  • Froala 编辑器:单击 div 时插入插入符号位置

    我正在使用 Froala v2 6 1 当用户单击 div 时 我想在编辑器的最后一个插入符位置准确地插入一个字符串 但该字符串始终插入到编辑器的末尾 这是我所做的事情 div class variable USER ID div Jque
  • Firebase 身份验证不持久

    刷新页面后 身份验证似乎不再持续 即使使用后firebase auth Auth Persistence LOCAL 每当我登录我的应用程序时 它都会成功地将我重定向到仪表板 但是 刷新页面后 无法访问仪表板 这是我的代码 文件名 logi
  • 插入时出现 DbUpdateConcurrencyException

    我正在使用 Entity Framework 6 将数据插入表中以进行集成测试 当我执行以下代码时 我在调用 SaveChanges 时收到 DbUpdateConcurrencyException using var context ne
  • Vue @click.native 不起作用?

    我有这样的导航组件
  • 中accept函数的地址大小长度

    在 sys socket h 中它定义了函数 int accept int socket struct sockaddr address socklen t address len 我的问题与socklen t address len其基于
  • 使用 pyinstaller 运行规范文件时出现错误 22:无效模式('rb')或文件名:' '

    这是我的规格文件 mode python a Analysis final code py pathex C Python27 PyInstaller 2 1 final code hiddenimports hookspath None
  • React-router:通过路由传递数据

    我正在尝试找出通过路线传递数据的最佳方式 我知道我可以使用参数 但某些类型的数据不属于参数 例如 我有一个显示应用程序列表的索引页 每个应用程序旁边都有一个按钮 可将您引导至该应用程序的视图 我想将应用程序本身传递给应用程序处理程序 然而
  • 方法引用如何与具有不同实现函数名称的函数接口兼容?

    这里 对静态方法 isPrime 的引用作为第一个参数传递给 numTest 这是可行的 因为 isPrime 与 IntPredicate 函数接口兼容 因此 表达式 MyIntPredicates isPrime 计算为对对象的引用 其
  • Oracle WITH CLAUSE 不起作用?

    我尝试在查询中使用WITH子句 但不断收到消息 ORA 00942 表或视图不存在 我尝试创建一个简单的查询作为示例 WITH测试AS 从客户中选择 COUNT Customer ID 从测试中选择 但即使这样也不起作用 它只是给出了这样的
  • Spring / Glassfish 3.1.2 过时文件

    我目前正在使用 Spring Web MVC 和 Spring Security 开发一个应用程序 我可以在 Glassfish 3 1 2 上部署它 但是当我想在修复一些错误后重新部署时 我收到此错误 WARNING Exception
  • 如何将用户重定向到 Android 应用程序中的默认启动器?

    自从我尝试弄清楚如何开发一个使用 NFC 身份验证的 Android 解锁屏幕应用程序以来 已经有很长一段时间了 我正在使用 Nexus S 经过在互联网上的多次研究 我得出的结论是 目前不支持将锁屏替换为第三方应用程序 我们需要修改平台才
  • 调用存储过程时,如何在表值参数中包含 RowVerson 列?

    如果我有一个包含 RowVersion 列的 SQLDataRecord 如下面的代码所示 我总是收到 SQL Server 错误 8052 传入的表格数据流 TDS 远程过程调用 RPC 协议流不正确 表值参数 d ls 行 I64d 列
  • 为什么转换函数不能与 std::string 一起使用?

    考虑以下类 其中包含 std string 类型的转换函数 class SomeType public SomeType char value str value operator std string return std string
  • jQuery 循环遍历每个 div

    我很确定这对于 jQuery 高手来说将是一个非常简单的答案 而且我也很确定它涉及某种循环 我试图对两个单独的 div 执行基本相同的计算 但根据找到的图像数量为每个 id 分配不同的 CSS 宽度值 我正在执行的计算实际上与我的问题无关
  • Microsoft Edge浏览器如何读取剪贴板数据

    我无法在 Microsoft Edge 浏览器中读取剪贴板数据 我正在使用下面的 JavaScript if window clipboardData window clipboardData getData IE pastedText w
  • 将类型变量替换为 const 成员

    假设我有一个包含一些常量成员的类 class MyClass public MyClass int a a a MyClass MyClass 0 MyClass const int a 现在我想存储一个实例MyClass某处 例如作为全局
  • 了解 CSS 选择器优先级/特异性

    我想了解 CSS 选择器如何处理属性冲突 如何选择一种财产而不是另一种财产 div background color red div my class background color black div my id background