【问题标题】:Whats wrong with my CSS Selector? [duplicate]我的 CSS 选择器有什么问题? [复制]
【发布时间】:2016-11-20 13:40:22
【问题描述】:

我在一个 div 中有一个 div。 .wrapper.level 的父级。

<div class="wrapper">
  <div class="level">
    Engkus Kusnadi
  </div>
</div>

当我使用 .wrapper 作为选择器为 .level 赋予样式时,它工作正常并且背景变为绿色。

.wrapper .level {
  background:green;
}

但问题发现,当我将唯一的.level 选择器背景添加为红色时,它什么也没有发生。

.wrapper .level {
  background:green;
}

.level {
  background:red;
}

这是我的小提琴https://jsfiddle.net/vcb4eqy4/

我错了什么? CSS Selector 有更高级别吗?

【问题讨论】:

  • 第一个选择器更具体,所以它获胜
  • 使用.level.level不会输。不过,我不明白这一点。
  • 您可能会觉得这很有帮助:specificity.keegan.st
  • 您还可以使用开发者工具更改浏览器中的样式。这可能是了解 CSS 选择器中优先级如何工作的最佳方式,同时阅读一些内容。
  • 您还可以将 !important 添加到您的 css 属性中。即背景:红色!重要;

标签: css css-selectors css-specificity


【解决方案1】:

你的问题在这里:

.wrapper .level {
  background:green;
}

.level {
  background:red;
}

通过定义.wrapper .level 规则,您定义了比.level 更具体的规则。如果存在冲突的规则,则应用更具体的规则。

像下面的例子一样改变你的代码,你会明白它的含义:

.wrapper .level {
  background:green;
}

div.wrapper .level {
  background:red; // this is now more 'specific'
}

您可以阅读this article 以了解有关这些规范的更多信息。

【讨论】:

    猜你喜欢
    • 2015-03-11
    • 2018-12-26
    • 1970-01-01
    • 2011-05-26
    • 1970-01-01
    • 2017-09-15
    • 2013-11-19
    • 1970-01-01
    • 2014-04-12
    相关资源
    最近更新 更多