.menu a:hover {color: red;}
.tab:hover {color:blue;}
<div class="menu">
<a class="tab">Link</a> // will be red
</div>
a.tab:hover
を使用して.menu a:hover
を無効にする理由を教えてください。なぜちょうど.tab:hover
は機能しませんか?CSSセレクタに関する質問
.menu a:hover {color: red;}
.tab:hover {color:blue;}
<div class="menu">
<a class="tab">Link</a> // will be red
</div>
a.tab:hover
を使用して.menu a:hover
を無効にする理由を教えてください。なぜちょうど.tab:hover
は機能しませんか?CSSセレクタに関する質問
.menu a:hover
は.tab:hover
よりmore specificではありませんので、カスケード順ダウン低く表示されます。
a.tab:hover
は.menu a:hover
と同じように、これらの2つのルールセットのルールはソースの順序で適用されます。
.tab
、この場合a
には、それが影響しているオブジェクトに従わなければならず、疑似クラス(またはアクション)が続かなければなりませんクラスあなたはそれが:hover
したがって、この場合には、によって活性化させたい、a.tab:hover
.tab:hover
しばらくの作品は
[the spec](http://www.w3.org/TR/CSS21/selector.html)から: 'ユニバーサルセレクターがシンプルセレクターの唯一のコンポーネントでない場合、「*」は省略される場合があります。 – Quentin
ここでの答えは、「特異性」と呼ばれるものになります。 CSS3セレクタの仕様のセクションCalculating a selector's specificity(CSS2.1仕様にも同様のものがあります)をご覧ください。
ベース10システムを考えてみましょう(どんなレベルでも10を超えないので安全です).menu a:hover
は021の特異性で終わりますが、.tab:hover
は020の特異性を得ます。ルールが両方で定義されている場合、.menu a:hover
が勝つでしょう。 を使用していた場合、その特異性は021となり、.menu a:hover
に等しくなり、指定された順番になります。
正確に両方が正常に動作します –