访问过的链接在 Chrome 中丢失 CSS 颜色动画

Posted

技术标签:

【中文标题】访问过的链接在 Chrome 中丢失 CSS 颜色动画【英文标题】:Visited links lose CSS color animation in Chrome 【发布时间】:2015-09-21 15:15:10 【问题描述】:

我正在尝试在链接上设置彩色动画。在 Chrome 中访问链接后,将不再应用彩色动画。其他动画样式(我测试过背景颜色、字体粗细和字体大小)和其他浏览器(Firefox、Safari、IE11)都不是这种情况。

这是一个演示:

http://codepen.io/benjarwar/pen/rVJbeRhttp://s.codepen.io/benjarwar/debug/rVJbeR

html

<a href='#' target='_blank' class='color'>Color Animation</a>

CSS:

a.color,
a.color:visited 
  -moz-animation: color-animation 1s ease-in-out infinite;
  -webkit-animation: color-animation 1s ease-in-out infinite;
  animation: color-animation 1s ease-in-out infinite;


@-moz-keyframes color-animation 
  0%  color: #f00; 
  50%  color: #fc0; 
  100%  color: #f00; 


@-webkit-keyframes color-animation 
  0%  color: #f00; 
  50%  color: #fc0; 
  100%  color: #f00; 


@keyframes color-animation 
  0%  color: #f00; 
  50%  color: #fc0; 
  100%  color: #f00; 

重现步骤:

    访问上面的链接 注意链接有不同的动画 点击其中一个链接(全部指向 href="#") 请注意,彩色动画链接不再动画 从浏览器历史记录中删除链接并刷新 请注意,一旦从历史记录中删除链接,动画就会返回

在 Mac OS 10.9.5 上使用 Chrome 版本 43.0.2357.130

【问题讨论】:

我在 Chromium 上提出了一个问题,但同时希望能有一个工作。 code.google.com/p/chromium/issues/detail?id=506898 我也有这个问题,我猜它与 CSS 漏洞有关,限制了修改访问链接的可能性,除了非常基本的属性(例如颜色等)。我不确定,但是在这里阅读了其他问题后,这似乎是唯一有意义的解释。如果没有,有人可以澄清一下吗? 你是否使用了像 normalize.css 这样的 CSS 重置? 不。这实际上被 Chromium 团队标记为错误;修复正在进行中。 您不会再看到上述标记/CSS 的问题,因为 Chromium 团队解决了这个错误。 code.google.com/p/chromium/issues/detail?id=506898 【参考方案1】:

我认为这与过去的一些一般安全/隐私问题有关:

我们正在限制可用于设置已访问样式的 CSS 属性 指向颜色、背景颜色、边框*颜色和轮廓颜色的链接 以及填充和描边属性的颜色部分。

https://hacks.mozilla.org/2010/03/privacy-related-changes-coming-to-css-vistited/ https://blog.mozilla.org/security/2010/03/31/plugging-the-css-history-leak/

【讨论】:

【参考方案2】:

您之前可以使用动画,但现在大多数浏览器限制在访问时使用 css 样式。只有属性允许是

    颜色 背景色 边框-*-颜色 轮廓颜色和 填充和描边属性的颜色部分。

source

为什么

以前人们习惯使用访问过的黑客来找出您访问过的网站。

http://dbaron.org/mozilla/visited-privacy

【讨论】:

以上是关于访问过的链接在 Chrome 中丢失 CSS 颜色动画的主要内容,如果未能解决你的问题,请参考以下文章

python 用于收集OSX上Google Chrome上访问过的链接的shell脚本

css3 过渡延迟,如果动画 svg 填充和颜色同时 chrome 中的错误在 FF 中起作用

html超链接,点击后文字变色,再点击下一项时,已点过的颜色怎么再恢复原来颜色?怎么写代码?

css样式中a:visited a:active 能帮我解释一下这是啥意思吗?

CSS:为啥 chrome 中的字母在像素缩放中被不同的颜色包围?

HTML 电子邮件中丢失的 CSS 颜色