html - 改变 child 的特异性

标签 html css css-specificity

我想将主题标签集成到我的元素中,以便它们以不同的颜色显示。但是由于 css 选择器具有相同的 css 特异性,所以最新的选择器会覆盖之前定义的规则。

这是一个说明我的问题的例子:

<div class="red">
  <div class="box">This should be red</div>
  <div class="yellow">
    ...
        <div class="box">This should be yellow (nested in x levels under the div.yellow)</div>
    ...
</div>

这是我的CSS

.box { width: 100px; height: 100px; }
.yellow { background-color: yellow; }
.red { background-color: red; }

盒子应该列在某处,但一旦它是另一个颜色定义的子子元素,它就应该被覆盖。

感谢您的帮助!

最佳答案

您真的不应该这样做——例如,如果您的主题发生变化,那么类 yellow 的东西突然可能实际上是蓝色的。我建议找到一种通用的命名方式(即使它只是 colour1colour2colour-highlight...)然后指定那些风格。然后,您可以查看页面的设计方式,并根据需要使规则更具体(通过使用 !important 或使规则更具体,例如 .colour1成为 .box .colour1div.colour1)。

关于html - 改变 child 的特异性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1905834/

相关文章:

css - 使用自定义 CSS 覆盖媒体查询中的样式

css - 在 Bootstrap 中更改图标栏 (☰) 颜色

html - 如何使图标在 MDL 标题上向左移动?

javascript - 缺少桌面导航

html - 使用黑色背景但透明文本的div使文本透明

php - 从 jquery 插件中的多选组获取值

css - CSS 样式的结果不是我所期望的

Javascript 执行函数 onload 但不触发按钮的 onclick 事件

html - cshtml按钮上下对齐

jquery - jQuery的背景动画问题