12

可能重复:
如何使用 javascript 删除 css 属性?

我有这个 javascript:

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

等等...

后来我面临删除属性的需要(不改变它的值,真正删除意义:就像我之前没有设置过一样)

我编写了这样的代码:

  1. div.style.height = 未定义;
  2. div.style.height = null;
  3. div.style.height = '';

只有解决方案 n.3 似乎有效,但即便如此......我不确定这是正确的方法(我只使用 chrome 来测试这个)

有谁知道正确的方法是什么?哪个适用于所有适当的浏览器?

谢谢

4

6 回答 6

2

您可以使用inheritinitial重视。http://www.w3.org/TR/css3-values/#common-keywords

于 2012-11-23T14:14:09.913 回答
1

没有“正确的方法”。微软曾经发明过 style.removeAttribute(),但不被支持。最好的方法是将其设置为标准值。

编辑:正如dystroy提到的,将它设置为“”会在所有浏览器中重置它,所以这将是最好的方法。

于 2012-11-23T13:59:39.753 回答
1

I have just created a fiddle with the following code

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

Setting the property to auto actually sets the style attribute on the element to

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

and overrides the css height property applied to #foo. To reset a style, as mentioned by others set the element's style property to an empty string

el.style.height = "";

Fiddle here

于 2012-11-23T14:32:53.747 回答
1

干得好:

div.style.height = "auto"
于 2012-11-23T13:56:44.410 回答
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 回答