4

次のように定義された div があります。

<div style="background-color: rgb(217, 240, 211) ! important; color: rgb(0, 102, 2) ! important;" class="div_box">... ...
</div>

div は現在インライン スタイルを使用しているため (私はこれが嫌いです!)、色だけでなく背景色もオーバーライドする必要があります。

私が試してみました:

.div_box[style] {
background-color: rgb(216, 219, 215) ! important; 
color: rgb(94, 94, 94) ! important;
}

しかし、うまくいきません。.div_box { ... } も試しましたが、まだ機能していません。

私の質問は、インライン スタイルを手動で変更せずに上記の div スタイルをオーバーライドするにはどうすればよいですか?

4

2 に答える 2

4

http://jsfiddle.net/UkpnZ/3/

指摘したように(スキップした)インラインスタイルを削除できないため、Jqueryを使用できる場合は、これを使用できます。

$('.div_box').css('background-color', '');
$('.div_box').css('color', '');

.div ボックスが表示されるインライン スタイルから background-color および color 属性を取り除きます。ここで追加された唯一の問題は、クラスが呼び出されるすべての場所でこれが削除されることです。

この方法を使用すると、スタイルシートも必要なくなり!importantます。

于 2013-06-04T17:55:48.867 に答える
3

インライン CSS は CSS スタイルシートをオーバーライドします。どちらも !important とマークされているため、この css トリックを使用して div の色を変更することはできません。

短い答え、あなたが望むことはできません。これは、インライン CSS が !important としてマークされていない場合にのみ可能です。

于 2013-06-04T17:55:55.260 に答える