2012-11-23 72 views
11

可能重複:
how to remove css property using javascript?什麼是通過JavaScript刪除/重置css屬性的正確方法?

我有這個JavaScript:

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

等等...

後來我面臨着需要去除財產 (不是cha nging它的價值,真正消除意思是:就像我還沒有設置之前)

我編寫這樣的事:

  1. div.style.height =不確定;
  2. div.style.height = null;
  3. div.style.height ='';

只有解決N.3似乎工作,但即使這樣......我不知道這是正確的方式做到這一點(我只使用Chrome瀏覽器測試這個)

有誰知道什麼是正確的方法?適用於所有適當的瀏覽器?

感謝

+0

通常2個爲我工作。 –

+2

檢查此:http://stackoverflow.com/questions/2027935/how-to-remove-css-property-using-javascript ...基本上「」將做到這一點。 –

回答

1

有沒有 「正確的方式」。微軟曾經發明過style.removeAttribute(),但它不被支持。最好的方法是將其設置爲標準值。

編輯:正如dystroy提到的那樣,將它設置爲「」可以在所有瀏覽器中重置它,所以這將是最好的方式。

+0

將其設置爲''似乎將其重置爲所有瀏覽器的默認設置。 –

+0

@looper聽起來像你的是'正確'的答案。除非有人提供更全面的內容,否則我會選擇它。 – Zo72

1

在這裏你去:

div.style.height = "auto" 
+5

請記住,初始值可能不是'auto'。可能已經指定了其他一些值。 –

+1

但是,如果問題說他想刪除該值,那麼它不會被重置爲原始值,而是會被重置爲「自動」。當然「自動」只適用於身高。 – zvona

+0

不僅身高,而且身高至少達成一致。 – EricG

-1

我使用的removeAttribute()函數從文件

document.getElementById("myDiv").removeAttribute("height") 
+1

如果高度是由CSS給出的,這將不起作用。 –

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

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"; 

設置屬性自動實際上是設置到

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

的元素上的樣式屬性,並覆蓋應用到#foo的CSS height屬性。要重置的風格,如其他人所說的元素的樣式屬性設置爲空字符串

el.style.height = ""; 

小提琴here

相關問題