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でスタイル設定されています。
: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>
デモ。
お役に立てば幸いです。
このように書いてください:
.class1{
background:red;
}
.class1.class2{
background:none;
}
:not
セレクターを使用できます。
$('.class1:not(.class2)')
YESSSS、
cssプロパティの後に!importantを使用します
例えばheight:30px !important
class1にclass2がある場合、height:30px
ユーザーheight:40px
!class2の高さで重要
私がjqueryでこれを処理する方法(タグ付けした方法であり、クラスclass1だけでdivが必要な場合)は、次のようなチェックを行うことです。
if($('div').class() == 'class1') {
}
これにより、クラスが等しいdivのみが選択され、class1
クラスがclass1 class2
ここに素晴らしい答えがあります。ここに少し追加したいと思います。同じように見えるが少し異なるセレクターをここで決定する必要があります。
class1
「が存在する場合はスタイルをオーバーライドしますclass2
。」または「両方のクラスが存在するときに特別なスタイルが必要です。」class1
「存在する場合と存在しない場合に、特別なスタイルを適用しますclass2
。」class1
「が存在する場合、セレクターのすべてのルールを本当に抑制したいclass2
。」あなたはあなたの要件が正確に何であるかを決定する必要があります。これらの文には違いがあります。
最初のケースでは、@ sandeepのようなCSSセレクターを使用します。これらのセレクターは、このように機能するためです。セレクターは.class1.class2
セレクターよりも具体的で.class1
あり、両方のクラスが存在する場合にセレクターが選択されます。したがって、両方のクラスが存在する場合にのみ適用するルールを設定できます。より具体的なセレクターでの衝突ルールは、他のセレクターよりも優先度が高く、それをオーバーライドすることができます。
2番目のケースでは、:not
セレクターを使用します。これらにより、クラスが存在する場合と存在しない場合にのみ、特定のスタイルを適用できます。
3番目のケースの場合:あなたの質問は、cssクラスを無視することを指しています。これは不可能です。より具体的なセレクターでルールをオーバーライドしたり、特定のタグと一致しなくなったセレクターにルールを配置したりできます。しかし、そこにある限り、それを無視することはできません。class1
したがって、タグのクラス属性からを削除する必要があります。ただし、これはjQueryを使用して実現できます。
$(".class2").removeClass("class1");