12

重複の可能性:
javascriptを使用してcssプロパティを削除する方法は?

私はこのJavaScriptを持っています:

var div = document.getElementById('myDiv');
div.style.width = '300px';
div.style.height = '200px';
...

等々...

後で、プロパティを削除する必要があります(値を変更せず、実際に意味を削除します。以前に設定していなかったように)

私はこのようなものをコーディングしました:

  1. div.style.height = undefined;
  2. div.style.height = null;
  3. div.style.height ='';

ソリューションn.3のみが機能しているようですが、それでも...これが正しい方法かどうかはわかりません(これをテストするためにChromeのみを使用しています)

誰かが正しい方法を知っていますか?これはすべての適切なブラウザで機能しますか?

ありがとう

4

6 に答える 6

2

あなたはinheritまたはinitial価値を使うことができます。http://www.w3.org/TR/css3-values/#common-keywords

于 2012-11-23T14:14:09.913 に答える
1

どうぞ:

div.style.height = "auto"
于 2012-11-23T13:56:44.410 に答える
1

「正しい方法」はありません。Microsoftはかつてstyle.removeAttribute()を発明しましたが、サポートされていません。最良の方法は、標準値に設定することです。

編集: dystroyが述べたように、これを「」に設定すると、すべてのブラウザでリセットされるため、これが最善の方法です。

于 2012-11-23T13:59:39.753 に答える
1

次のコードでフィドルを作成しました

HTML

 <div id="foo" style="height: 100px;"></div>

CSS

#foo {
    height: 200px;
    background-color: yellow;   
}

JavaScript

var el = document.getElementById("foo");
el.style.height = "auto";

プロパティをautoに設定すると、実際には要素のスタイル属性が次のように設定されます。

<div id="foo" style="height: auto;"></div>

に適用されるcssheightプロパティをオーバーライドします#foo。他の人が述べているように、スタイルをリセットするには、要素のstyleプロパティを空の文字列に設定します

el.style.height = "";

ここでフィドル

于 2012-11-23T14:32:53.747 に答える
0

別のオプションはgetComputedStyle、現在のスタイルプロパティを取得するために使用し、変数をリセットする必要があるときにその値を呼び出すことです。

var style = getComputedStyle(div);

div.origWidth = style. getPropertyValue("width");
div.origHeight = style. getPropertyValue("height");

https://developer.mozilla.org/en-US/docs/DOM/window.getComputedStyle

于 2012-11-23T13:59:46.650 に答える
-1

ドキュメントからremoveAttribute()関数を使用します

document.getElementById("myDiv").removeAttribute("height")
于 2012-11-23T13:58:46.963 に答える