CSS:!important无法覆盖其他规则

5

我正在尝试更改导航栏中的字体颜色。我使用了Bootstrap和自己的样式表。

我想让我的字体变成红色,所以我试图通过 !important (其他方法也失败了)来覆盖其他规则。但是颜色仍然是灰色的。这些是从Chrome开发者工具中计算出来的元素的值:

  • color: hsl(0, 0%, 60%);
  • .navbar-inverse .navbar-brand - #999
  • a - #428bca
  • a:-webkit-any-link - -webkit-link
  • nav - red !important
  • body - #333

为什么 !important类选择器 的样式覆盖,如何使我的字体变成红色呢?

(答案是 !important 只会覆盖应用到相同元素上的样式,它不会使元素的后代继承它) - 来自评论。


1
@jsalonen,好的,这是我的CSS:html{color: red !important;},其他所有的都来自bootstrap.css。 - Evgenia Karunus
你通常不必使用 important。 - Xatenev
@Xatenev,我甚至尝试了ID。 - Evgenia Karunus
3
我记得这个问题几天前已经被问过了。答案是 !important 只会覆盖应用它的同一元素上的样式,不会让元素的后代继承该样式。 - BoltClock
@BoltClock 我认为它们很相关:如果他知道CSS规则如何相互覆盖,他甚至不会在第一时间使用!important。如果你能找到昨天的那个问题,请添加一个链接。 - jsalonen
显示剩余8条评论
1个回答

2
试试这个:

.navbar .navbar-nav>li>a {
    color: red;
}

1
这个有效,谢谢。为什么它有效而!important无效? - Evgenia Karunus
2
你只是没有处理正确的元素。 - Gofilord
在使用html{color: red !important;}时,如果字体颜色是可继承属性,而没有正确指定元素,会出现什么问题? - Evgenia Karunus
1
@lakesare 我认为Bootstrap有时会使用!important,而且这些!important可能会在你的“html{color...}”之后出现,因此它们会覆盖你的样式。 - Xatenev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接