【发布时间】:2015-09-20 13:43:48
【问题描述】:
我无法从访问过的链接中删除下划线。在我的电脑中,下面的 Fiddle 显示了在任何浏览器(Chrome、Firefox 和 IE 的当前版本)中访问的链接的黑色下划线文本。
a:link { color: red; text-decoration: underline; }
a:visited { color: black; text-decoration: none; }
<p><a href="http://www.nevervisited.com">This link is not visited.</a></p>
<p><a href="http://www.google.com">This is link is visited.</a></p>
这是 Chrome 的已访问链接检查器。
我怀疑a:visited 变灰与此有关,但this question 关于变灰样式对我没有任何帮助,尽管它帮助了许多其他人。
这些答案(this、this)表明规范不关心子元素的 text-decoration,当它们的祖先定义了它时,但我认为这里不是这种情况。我的<a>s 没有带下划线的父母,我也没有使用伪元素,而是伪类。
另外,如果W3C 这么说,Chrome 为什么要将a:link 应用于访问的链接
这两个状态 [
a:link和a:visited] 是互斥的。
也许这与用户代理在网站上隐藏私人信息有关,就像 W3C 在前一个报价之后建议的那样?这个:
注意。样式表作者可能会滥用
:link和:visited伪类来确定用户在未经用户同意的情况下访问了哪些网站。因此,UA 可能会将所有链接视为未访问的链接,或实施其他措施来保护用户的隐私,同时以不同的方式呈现已访问和未访问的链接。
【问题讨论】:
-
这似乎与您提到的安全问题有关。另见hacks.mozilla.org/2010/03/…
标签: css css-selectors