【问题标题】:Cannot change the content of visited :before pseudo-elements无法更改访问的内容:before 伪元素
【发布时间】:2013-04-17 07:42:40
【问题描述】:

我试图为访问的链接添加一些效果,然后我遇到了这个问题。

这里是代码:http://dabblet.com/gist/5447894

只有 Opera 可以成功改变:before 伪元素的内容。所有其他浏览器都失败。我错过了什么吗?谢谢

【问题讨论】:

标签: css pseudo-element css-content


【解决方案1】:

已访问链接的允许(= 不忽略)CSS 属性为 colorbackground-colorborder-*-coloroutline-colorcolumn-rule-color(在某些情况下更多)。

这是为了防止历史窃取攻击。详情请见this article

因此,从技术上讲,您可以为:visited 链接设置一个:before 伪类,但它会被忽略并看起来好像链接没有被访问过。这不是一个错误,而是一个特性;)

【讨论】:

  • 表示opera缺乏安全性!
【解决方案2】:

出于隐私原因,在现代浏览器中对:visited 链接进行样式设置的可能性范围非常有限,因此您无法通过使用 javascript 检查计算的样式来检测用户之前访问过哪些网站。

:visited 链接的样式允许的属性是

  • color
  • background-color
  • border-color(及其子属性)
  • outline-color
  • 填充和描边属性的颜色部分

即便如此,您也无法通过 javascript 获取已访问链接的计算样式值。

您可以阅读更多关于它的信息here

【讨论】:

  • 谢谢你的解释:)
猜你喜欢
  • 1970-01-01
  • 2012-05-16
  • 2018-09-03
  • 2013-01-09
  • 2020-03-13
  • 2017-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多