background-image:for:访问过的链接?

时间:2013-01-07 19:39:48

标签: css css-selectors

是否可以将background-image:属性添加到访问过的链接?

 a.coolLinks:visited{
     background-image:url("http://www.ledr.com/colours/black.jpg");
}

由于

编辑:因此,这似乎是一个安全漏洞,这就是无法完成的原因。没有迹象表明浏览器阻止了这种css风格。

3 个答案:

答案 0 :(得分:13)

根据大多数规格,您的代码是正确的。但是,many browsers认为访问过的链接上的背景图片可能会侵犯用户的隐私,因此他们不允许这样做。

观察这个例子:

<p><a href="/unvisited">Unvisited link</a></p>

<p><a href="http://jsfiddle.net/">Visited Link</a></p>

<style>
a {
  background:red url("http://placekitten.com/100/101?image=2") center center no-repeat;
  display: block;
  height: 200px;
  width: 200px;
  overflow: hidden;
  text-align: center;
  background-color: red;
}

a:visited {
  background:blue url("http://placekitten.com/100/100?image=1") center center no-repeat;
}
</style>

(也在http://jsfiddle.net/Yq5GY/1/)。 Firefox忽略了访问过的链接的背景图像声明,并且从不显示独奏小猫。您可以使用背景颜色进行区分。无论如何,单独依赖图像是不好的可用性。

答案 1 :(得分:1)

正如@KatieK建议的那样,大多数浏览器都不允许将背景图像[甚至其他规则如背景颜色]设置为:visited链接,因为它是隐私问题。您可以使用以下链接阅读:

  1. Privacy Related Changes
  2. Reported Bug

答案 2 :(得分:1)

MDN spec for :visited,您会发现不允许使用背景图片。