CSSセレクターで特定のクラス名を除外するにはどうすればいいですか? 質問する

CSSセレクターで特定のクラス名を除外するにはどうすればいいですか? 質問する

ユーザーがクラス名が である要素にマウスを移動したときに背景色を適用しようとしています"reMode_hover"

しかし、要素の色を変えたくないのでまたもっている"reMode_selected"

注: ある種の制限された環境で作業しているため、JavaScript ではなく CSS のみを使用できます。

明確に言えば、私の目標は、ホバー時に最初の要素に色を付け、2 番目の要素には色を付けないことです。

html

<a href="" title="Design" class="reMode_design  reMode_hover">
    <span>Design</span>
</a>

<a href="" title="Design" 
 class="reMode_design  reMode_hover reMode_selected">
    <span>Design</span>
</a>

最初の定義が機能することを期待して以下を試しましたが、機能しません。何が間違っているのでしょうか?

CS

/* do not apply background-color so leave this empty */
.reMode_selected .reMode_hover:hover 
{
}

.reMode_hover:hover 
{
   background-color: #f0ac00;
}

ベストアンサー1

1 つの方法は、複数のクラス セレクターを使用することです (子孫セレクターなのでスペースはありません)。

.reMode_hover:not(.reMode_selected):hover 
{
   background-color: #f0ac00;
}
<a href="" title="Design" class="reMode_design  reMode_hover">
    <span>Design</span>
</a>

<a href="" title="Design" 
 class="reMode_design  reMode_hover reMode_selected">
    <span>Design</span>
</a>

おすすめ記事