2012-11-23 33 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

相关问题