html - 为什么不在 <li> 中阻止 <a> 接受 css 文件中设置的颜色?

标签 html css

我想了解如何更改“li”元素中“a”标签的颜色。我有以下无序列表:

<nav class="navbar navbar-default navbar-fixed-top">
  ...
  <ul class="nav navbar-nav navbar-left">
    <li><a href="#">About</a></li>
    <li><a href="#">Blog</a></li>
    <li><a href="#">Contact</a></li>
  </ul>
  ...
</nav>

为什么下面的工作:

.navbar-default .navbar-nav li a {
  color: #333333;
}

.navbar-default .navbar-nav li a:hover {
  color: #EC5216;
}

但不是:

li a {
  color: #333333;
}

li:hover a {
  color: #EC5216;
}

也不是:

a {
  color: #333333;
}

a:hover {
  color: #EC5216;
}

我已阅读 this post ,但目前还不清楚。提前感谢您的回答!

最佳答案

选择器上有一个被计算的层次结构。您放置的选择器越多,它定义的样式在层次结构中的位置就越高。

比方说你只使用

a {
 style....
}

这个a的总权重是5。

但是如果你做一个

.class a {
 style...
}

.class 还有另外 5 个,所以 5+5 = 10 并且具有更高的优先级。

您可以通过将 !important 放在较低层级的语句中来测试这一点。

看这里 https://www.smashingmagazine.com/2007/07/css-specificity-things-you-should-know/

关于html - 为什么不在 <li> 中阻止 <a> 接受 css 文件中设置的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36732691/

相关文章:

html - 如何使用 CSS 旋转文本

php - 下拉菜单返回显示 "Please Select"并且未出现失败/成功消息

jquery - 如何以编程方式旋转使用背景大小 :cover with Jquery? 的 div 的背景图像

javascript - 需要 child div 成为 parent ,但在 js 或 css 中有可能吗?

javascript - 仅打印网页的一部分

html - 渲染性能 : style attributes or classnames and stylesheet rules?

javascript - 为什么放置在</body>和&lt;/header&gt;之后的JS脚本会被执行?

javascript - 通过ajax调用特定的php函数不起作用

javascript - 图库 slider 错误..

html - 导航栏适用于除一个页面之外的大多数页面