a:hoverより具体的だからだと思いますa:link。
元のa:hoverfont-size が指定されていない場合は、 から継承されa:linkます。しかし、a:hover仕様があるので、a.myclass:hoverむしろ「一般的」というよりもこの値を取りますa.myclass:link。
私はどこかでa疑似クラスを「愛憎」と考えるように読みました: :link, :visited, :hover, :active, 前のものより具体的なもの。aまたはに何かを定義すると:link、それは以下のすべての疑似クラスに継承されます。ただし、その値はオーバーライドできます。疑似クラスの特異性は、スタイルが定義されている順序や、リンクに関連付けられている他の「実際の」クラスよりも重要です。
IE6 で動作が異なる理由は、IE6 が間違っているためです。これは驚くべきことではありません。
解析の違い (おそらく後方):
a:hover { font-size: 8pt }
a.myclass:link { font-size: 14px }
a.myclass:hover { }
それがどうあるべきか:
:hoverに関係なく、すべての.classは 8pt です。
IE6 がそれを理解する方法:
:hoverは と同じクラスではありません.myclass:hover。にはサイズが指定されていないため.myclass:hover、同じクラスで利用可能な次に上位の疑似クラスである を継承しましょう.myclass:link。.myclass:hover14pxになります。
ルックアップの推定優先度:
Others IE6
a a
a.class a:link
a:link a:hover
a.class:link a.class
a:hover a.class:link
a.class:hover a.class:hover <-- Lookup starts here, goes up.