html - 文字阴影覆盖

标签 html css

HTML

<ul>
  <li><a href="#">Home</a></li>
  <li><a href="#" class="active">About</a></li>
</ul>

CSS

ul li:nth-child(even) a {
    text-shadow: 1px 1px 1px red;
}

.active {
    text-shadow: none;
}

第二个列表项仍然有阴影。为什么?

最佳答案

这是一个特异性问题:第一个规则获胜是因为它比第二个规则(仅 1 个类,无元素:)具有更大的特异性(计算为 1 个伪类和 3 个元素:13) >10) :你应该改写

ul li:nth-child(even) a.active {
   text-shadow: none;
}

或者 - 通常 - 特异性大于或等于 13 的任何其他有效规则。

如果您无法更改第二个选择器,您可以简单地使用应用于该属性的 !important,但应尽可能少地使用它。


有关更多信息,另请参阅:

关于html - 文字阴影覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14562426/

相关文章:

javascript - jquery动画帮助

css - 出于 CSS 目的,如何命名我的 DOM 元素

javascript - REACT : On render, 给每个div一个唯一的className

javascript - 使用 jQuery 绑定(bind)动态元素时使用 CSS 选择器引用 self?

html - 在 firefox 和其他浏览器中遇到 ul 问题

html - CSS float 属性

html - 使用 CSS 而不是 JS 进行悬停预览

javascript - 根据一天中的时间和一周中的某一天更改背景?

javascript - 将显示设置为内联提交表单但不阻止

ios - 背景图片 - 即使是小图片 - 不显示在移动设备上