css - 特异性错误 - CSS

标签 css css-specificity

因此,在计算某些 CSS 代码的特异性时,我遇到了一些我认为矛盾的情况。

根据“公式”(inline > id > class > elements)我对前面的几行进行了计算:

(1)  p.b {color: red}          Specificity: (0,0,1,1)
(2)  .a>.c {color: black}                   (0,0,2,0)

由于 (2) 有 2 个类,其特异性高于 (1),因此浏览器应该选择黑色而不是红色,而情况恰恰相反。

任何人都可以告诉我我做错了什么吗?

HTML 代码:

/* Specificity: (0,0,1,1) */
p.b {
  color: red
}

/*              (0,0,2,0) */
.a>.c {
  color: black
}
<div class="a">
  <div class="c">
    <p class="b">Parágrafo 2</p>
  </div>
</div>

最佳答案

关于第二段:在两个选择器中,.a > .c选择器仅直接应用于父级 <div class="c">元素。如果任何其他选择器不覆盖它的样式,则会继承它的样式。但是p.b选择器是两个中唯一一个直接应用于子<p>的选择器元素中包含文本,因此它优先。正如另一位发帖者所说,除非两个选择器针对同一元素,否则特异性规则不适用。在这里,他们的目标是 parent 和 child 。在决定子级的样式时,子级自己的选择器将始终胜过从父级继承的样式。

关于css - 特异性错误 - CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27790622/

相关文章:

javascript - 从文件填充 html 列表

html - 页脚重叠内容(无法通过搜索引擎找到解决方案..)

jquery - 在鼠标悬停时切换文本

html - 使用百分比时,CSS 标记 'right' 无法按预期工作

javascript - 响应式菜单在网站上不起作用

javascript - 检查元素继承了哪些属性

html - CSS 样式优先级未按预期工作

html - CSS 优先级奇怪 - "#id tag"> "#tagId"为什么?

html - !重要的特异性覆盖不起作用

CSS 选择器层次结构?