このWebサイト の左側のメニューにあるリンクには、CSS3遷移プロパティcolor
があり、マウスをホバーすると変化します。 Chrome 16または17(色の変化が突然))では機能しませんが、Webサイトの他の移行では機能します。Firefox、Opera、およびChromeなどのWebkitを使用するSafariでも機能します。 CSSに問題があるとは思いません。
これがこの部分の私のCSSです(完全なCSSは here です):
#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;
}
UPDATE!どうやらこれはおそらく18ベータで修正されました。ただし、この問題が発生した場合は、以下の承認された回答にリンクされているバグレポートにアクセスして、問題にスターを付けてください。
@にじこくん同じことが確認できます。 :visitedリンクはChromeでは正しく遷移しません。やったーこれはバージョン16で発生した問題で、修正されなかったようです。 Chromiumサイトでいくつかのバグレポートが公開されています。
私は回避策を見つけようとしました(私のブログの詳細: http://kyuumeitai.posterous.com/the-case-of-the-chromes-transition-hover-bug )
A:visitedを色(color、background、border-colorなど)で透明に宣言すると、回避策として機能するようです。私はまだ十分にテストしていませんが、フィードバックを受け取ってよかったです。
これは動作しない問題ではありません。つまり、:visitedリンクは移行していません。そのため、クリックしていない場合は機能する可能性がありますが、クリックした場合は機能しません。
私は解決策を知りません、私はまだ解決策を探しています...
。 。これはバグではなく、意図した動作であることに気付くといいと思いました。引用 Mozilla Developer docs :
Web開発者への影響
全体として、これはWeb開発者にあまり大きな影響を与えません。ただし、サイトの変更が必要になる可能性があるいくつかの特殊なケースがあります。
(...)
CSS遷移は、訪問済みリンクではサポートされません。幸いなことに、CSSの移行は非常に新しいものであり、現時点でそれらを使用しているサイトはほとんどないため、現時点では多くの人に影響を与えることはありません。
Darren Kovalchikが彼の助言者( https://stackoverflow.com/a/8524199/1010777 )に書いたように、Chromeにはこれに関するバグがあります。
可能な回避策は、リンクの親要素にカラーアニメーションを適用し、リンクの色を継承に設定することです。この場合、リンクが: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; }
}
もちろん、リンクの親の色を設定することが問題である場合、この回避策は機能しませんが、他のすべてのケースでは、簡単でクリーンなソリューションを提供します。
私のリンク移行のうち2つは機能しますが、残りはChromeでは機能しません。それらはすべて同じ設定を使用します。リンクがmailto:またはcallto:のどちらかである場合に動作するようです-私に尋ねると奇妙に奇妙です。
:visited動作から色を削除すると、期待どおりに動作するはずです。 :visited動作で色が設定されている場合、:hover color(遷移なし)でも期待どおりに機能しません。
私はまだ同じ問題に遭遇し、私のために働く解決策を見つけました。
次のように:link
疑似クラスを使用することで修正できました。
#menu a, #menu a:link {
color: gray;
transition: color 0.5s;
}
#menu a:hover {
color: black;
}