5

css値を無視できますか?

私は2つのdivを持っています:

<div id="div1" class="class1 class2">
</div>

<div id="div2" class="class1">
</div>

cssクラスはclass1でスタイル設定されたdivだけに適用でき、class2が含まれている場合は無視されますか?したがって、上記のdivでは、div1もclass2でスタイル設定されているため、div2だけがclass1でスタイル設定されています。

4

6 に答える 6

14

:notセレクターを使用できます。次に例を示します。

CSS

.red:not(.yellow) {
    color: red;
}
.yellow {
    background-color: yellow;
}

HTML:

<div class = "red yellow">
   Glee's awesome!
</div>
<div class = "red">
   Glee's awesome!
</div>

デモ

お役に立てば幸いです。

于 2012-08-31T13:58:24.183 に答える
8

このように書いてください:

.class1{
  background:red;
}
.class1.class2{
  background:none;
}
于 2012-08-31T13:54:33.660 に答える
2

:notセレクターを使用できます。

$('.class1:not(.class2)')
于 2012-08-31T13:57:26.523 に答える
1

YESSSS、

cssプロパティの後に!importantを使用します

例えばheight:30px !important

class1にclass2がある場合、height:30px ユーザーheight:40px!class2の高さで重要

于 2012-08-31T13:54:44.457 に答える
0

私がjqueryでこれを処理する方法(タグ付けした方法であり、クラスclass1だけでdivが必要な場合)は、次のようなチェックを行うことです。

if($('div').class() == 'class1') {


}

これにより、クラスが等しいdivのみが選択され、class1クラスがclass1 class2

于 2012-08-31T13:54:45.000 に答える
0

ここに素晴らしい答えがあります。ここに少し追加したいと思います。同じように見えるが少し異なるセレクターをここで決定する必要があります。

  • class1「が存在する場合はスタイルをオーバーライドしますclass2。」または「両方のクラスが存在するときに特別なスタイルが必要です。」
  • class1「存在する場合と存在しない場合に、特別なスタイルを適用しますclass2。」
  • class1「が存在する場合、セレクターのすべてのルールを本当に抑制したいclass2。」

あなたはあなたの要件が正確に何であるかを決定する必要があります。これらの文には違いがあります。

最初のケースでは、@ sandeepのようなCSSセレクターを使用します。これらのセレクターは、このように機能するためです。セレクターは.class1.class2セレクターよりも具体的で.class1あり、両方のクラスが存在する場合にセレクターが選択されます。したがって、両方のクラスが存在する場合にのみ適用するルールを設定できます。より具体的なセレクターでの衝突ルールは、他のセレクターよりも優先度が高く、それをオーバーライドすることができます。

2番目のケースでは、:notセレクターを使用します。これらにより、クラスが存在する場合と存在しない場合にのみ、特定のスタイルを適用できます。

3番目のケースの場合:あなたの質問は、cssクラスを無視することを指しています。これは不可能です。より具体的なセレクターでルールをオーバーライドしたり、特定のタグと一致しなくなったセレクターにルールを配置したりできます。しかし、そこにある限り、それを無視することはできません。class1したがって、タグのクラス属性からを削除する必要があります。ただし、これはjQueryを使用して実現できます。

 $(".class2").removeClass("class1");
于 2012-08-31T14:23:24.333 に答える