以下是基于此 HTML 的两个示例。
<a href="#">
<div class="foo">
hello
<span class="bar">world</span>
</div>
</a>
在第一个中,我在悬停时使链接不加下划线,然后在链接的子部分下划线,效果很好:
a {
text-decoration:none;
}
a:hover {
text-decoration: none;
}
a:hover .bar {
text-decoration: underline;
}
在第二个中,我现在反转选择器,以便第二个单词不加下划线。然而,现在奇怪的事情发生了。尽管选择器似乎应该从第二个单词中删除下划线,但整个链接仍然带有下划线。 <--(这是问题。为什么会发生这种情况?)
a {
text-decoration:none;
}
a:hover {
text-decoration: underline;
}
a:hover .bar {
text-decoration: none;
}
有人可以解释第二个示例中出了什么问题吗?用 Chrome 检查显示span.bar
有一个计算样式为text-decoration:none
.
更新:一些解释如何解决问题的答案,这很好,除了这不是我的问题。我想知道的是为什么这种行为不同于粗体?例如,如果我用粗体尝试第二个示例,我会得到预期的结果:http: //jsfiddle.net/3qPyX/4/