2012-03-15 4 views
7

要素スタイルプロパティが重要な場合(トラフstyle=""またはJSのいずれかを設定)、どのように削除できますか?重要なCSSプロパティを削除するにはどうしたらいいですか?

removeProperty()は(jsfiddle)を動作しません:あなたはプロパティを削除することはできません

elem.style.setProperty('background', '#faa', 'important'); 
elem.style.removeProperty('background'); // doesn't work 

(好ましくframeworklessソリューション、それが唯一のChromeで動作するように持っている)

答えて

13

理由があるので、それは省略形のプロパティです。

これを設定すると、実際に他のプロパティが追加されますが、「背景」プロパティはないため、削除する「背景」プロパティはありません。この場合

は、あなたはこのようにそれを設定解除することができます

elem.style.removeProperty('background-color'); 

一般的に、あなたは速記プロパティによって表されるすべての「長手」プロパティの設定を解除する必要があると思います。

elem.style.setProperty('background', 'inherit', 'important'); 

それとも、このような要素の全体のインラインスタイルをNukeの可能性:


また、それを上書きするこれを行うことができます

elem.style.cssText = ''; 
+1

興味深いカントー 'そのremoveProperty( 'background') 'が' important'で設定されていなければ動作します。 – Qtax

+0

素晴らしい、 'cssText'は私の場合に役立つでしょう。 +2 ;-) – Qtax

+1

省略形のプロパティを削除すると、「重要」に設定されていない対応する「長さ」のプロパティがすべて削除されるようです。 '重要 'として設定されているもの(直接に長さのプロパティや短縮されたプロパティを経由するもの)は、明示的に削除する必要があります。私はこれをサポートするための参照を見つけていないが、私はそれが設計上であると推測している。 –

関連する問題