0

次の HTML があるとします。

<div class="SomeClass">test</div>
<div class="SomeClass" id="SomeID">test</div>
<div class="SomeClass">test</div>

このCSSで

.SomeClass{color:blue;}
.SomeClass:hover{color:red}

SomeIDホバー効果がdivに適用されないようにしたい。jQueryでこれを行うことができますが、CSSだけで行うより簡単な方法があるかどうか疑問に思っていました.

ご提案いただきありがとうございます。

4

4 に答える 4

4

CSS は順番に解析されます。

.SomeClass:hover { color: red; }

次に、ルールを定義します

#SomeId.SomeClass:hover { color: blue; }

それはイニシャルを「上書き」する必要がありますcolor: red;

于 2012-08-16T15:54:29.490 に答える
3

SomeIDのIDを持つdivに別のルールを割り当てるだけです。これにより、他のルールが上書きされます。

.SomeClass{color:blue;}
.SomeClass:hover{color:red}
#SomeID:hover{color:blue}

jsFiddleの例

于 2012-08-16T15:54:02.297 に答える
1

スタイルを上書きするだけです:

#SomeID:hover {
    color:blue;
}

または、次を使用できます。

.SomeClass:not(#SomeID):hover {
    color:red;
}

その場合、変更は簡単ですが、ブラウザーのサポートは少なくなります。

于 2012-08-16T15:55:25.493 に答える
0

リンク疑似クラスの特異性を見てみましょう。

覚えておいてください: LAHV ( :link, :active, :hover, :visited)。

まず、適切にカスケードするために、次を に割り当てましょう.SomeClass

.SomeClass:link, .SomeClass:active, .SomeClass:visited { color: blue; }
.SomeClass:hover { color: red; }

次に、指定しましょう#SomeID:

#SomeID:hover { color: blue; }

idは常に よりも優先されclassます。

于 2012-08-16T15:57:24.010 に答える