我有这样的代码:
a:link {
background-color: pink;
color: yellow;
}
<a href="#">link</a>
<br>
<a href="">link</a>
<br>
<a>link</a>
:link伪类适用于尚未访问的链接。因此,我认为访问后链接中的background-color
和color
属性被取消了。
https://drafts.csswg.org/selectors-3/#link:link伪类适用于尚未访问的链接。
但是实际上,background-color
属性仍然存在。另外,字母的颜色是否恢复为原始的蓝色而不是紫色?
这是已报告的已知错误吗?还是规范中还有其他因素?这在大多数现代浏览器中都是可重现的,但是在任何浏览器中均未发现可证明其为错误的错误凭单。
[我还发现访问的背景正在干扰链接,但这不是很直观,但这是规范吗?
a:link {
color: yellow;
}
a:visited {
background: black;
color: red;
}
<a href="#">link</a>
<br>
<a href="">link</a>-why background not work?
<br>
<a>link</a>
更新
我收到了有关隐私限制的评论。但是,就MDN文章而言,它主要是对background-image
属性的约束,并且background-color
属性不应受到影响,因此这不应与隐私约束有关。
https://developer.mozilla.org/en-US/docs/Web/CSS/:visited#Styling_restrictions
出于隐私原因,浏览器严格限制了您可以使用此伪类应用哪些样式,以及如何使用它们:
- 允许的CSS属性是颜色,背景颜色,边框颜色,边框底部颜色,边框左侧颜色,边框右侧颜色,边框顶部颜色,列规则颜色和轮廓颜色。
我不认为如果没有默认样式表,则应应用不应应用的伪类样式。
[:visited
由于:visited
而具有CSS样式上的限制,因此您可以对其应用样式。
但是],具有讽刺意味的是,如果将privacy reasons应用于元素itself,则可以通过background
伪选择器覆盖样式。与:visited
相同:
:link
a { background: blue; /* Required */ } a:link { background: red; color: yellow; } a:visited { background: black; color: red; }
您必须提供默认状态<a href="#">link</a>
<br>
<a href="">link</a>
<br>
<a>link</a>
但是实际上,背景颜色属性仍然存在。