CSS3颜色过渡不工作在Chrome



本网站左侧菜单中的链接具有color的CSS3过渡属性,鼠标悬停时该属性会发生变化。它不工作在Chrome 16或17(颜色变化是突然的),而在网站上的其他过渡。它适用于Firefox, Opera,甚至Safari,它使用webkit像Chrome,所以我不认为这可能是我的CSS的问题。然后什么?

这是我这部分的CSS(完整的CSS在这里):

#menu a
{
color: gray;
transition: color 0.5s;
-moz-transition:color 0.5s; /* Firefox 4 */
-webkit-transition:color 0.5s; /* Safari and Chrome */
-o-transition:color 0.5s; /* Opera */
}
#menu a:visited
{
color: gray;
}
#menu a:hover
{
color: black;
}

更新!显然这可能已经在18测试版中修复了。但是,如果您遇到了这个问题,请访问下面可接受的答案中链接的错误报告,并标记问题。

@Nijikokun我可以确认同样的事情。:访问的链接在Chrome中不能正确转换。万岁。似乎这是一个在16版突然出现的问题,并且从未得到修复。Chromium网站上有一些bug报告。

http://code.google.com/p/chromium/issues/detail?id=101245& q =访问% 20 transition& colspec ID = % 20 pri % 20 mstone % 20 releaseblock % 20区% 20特性% 20状态% 20所有者% 20总结

我试图找到一个解决方案(更多细节在我的博客:http://kyuumeitai.posterous.com/the-case-of-the-chromes-transition-hover-bug)

似乎如果你声明一个:访问颜色(颜色,背景,边框颜色等)透明,它将作为一个解决方案。我还没有广泛的测试,很高兴收到反馈。

这不是一个-非工作问题,它是什么:访问的链接不是过渡,所以它可能为你工作,如果你没有点击它,但如果你有,它将不会。

我不知道一个解决方案,我还在寻找一个…

。我认为这将是很好的注意到,这不是一个错误,但有意的行为。引用Mozilla Developer文档:

对web开发人员的影响

总的来说,这应该不会对web开发人员产生太大的影响。但是,有一些特殊情况可能需要更改站点:

(…)访问过的链接不支持

CSS转场。幸运的是,CSS转场非常新,目前使用它们的网站很少,所以这可能不会影响到很多人。

正如Darren Kovalchik在他的回答(https://stackoverflow.com/a/8524199/1010777)中所写的那样,Chrome在这方面有一个bug。

一个可能的解决方法是在链接的父元素上应用颜色动画,并将链接的颜色设置为继承。在这种情况下,即使链接是:visited,动画也能正常工作。

html:

<span class="whateverLinkParent">
    <a href="#">whateverLinkText</a>
</span>
css:

.whateverLinkParent { animation: whateverTextColorAnimation 1s infinite; }
.whateverLinkParent a { color: inherit; }
@keyframes whateverTextColorAnimation {
    0%, 100% { color: #686765; }
    50% { color: #2E2D2B; }
}

当然,如果设置链接父元素的颜色是一个问题,这个方法就不能工作了,但在其他情况下,它提供了一个简单而干净的解决方案。

尝试使用#ccc和#000而不是灰色和黑色。

编辑:

一样:http://jsfiddle.net/qtzEj/

希望有帮助

我的两个链接过渡工作,但其余的没有在chrome。它们都使用相同的设置。当链接是mailto:或callto:时,它们似乎有效——如果你问我,我会觉得奇怪。

如果你从:访问行为中删除颜色,那么它应该像预期的那样工作。当在:访问行为中设置颜色时,即使:悬停的颜色(没有过渡)也不能像预期的那样工作

我仍然遇到同样的问题,并找到了一个适合我的解决方案。

我能够通过使用:link伪类修复它,像这样:

#menu a, #menu a:link {
  color: gray;
  transition: color 0.5s;
}
#menu a:hover {
  color: black;
}

相关内容

  • 没有找到相关文章

最新更新