Подтвердить что ты не робот

Какой правильный способ удалить /reset свойство css через javascript?

Возможный дубликат:
как удалить свойство css с помощью javascript?

У меня есть этот javascript:

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

и т.д.

Позже я столкнулся с необходимостью удаления имущества (не изменяя его значение, действительно удаляя значение: как я раньше не задавал)

Я закодировал что-то вроде этого:

  • div.style.height = undefined;
  • div.style.height = null;
  • div.style.height = '';

Только решение n.3 работает, но даже так... Я не уверен, что это правильный способ сделать это (я использую только хром для проверки этого)

Кто-нибудь знает, что правильно? который работает во всех правильных браузерах?

Спасибо

4b9b3361

Ответ 1

Нет "правильного пути". Microsoft однажды придумала style.removeAttribute(), но она не поддерживается. Лучший способ - установить его на стандартное значение.

Изменить: Как упоминалось в dystroy, установка этого параметра на "" сбросит его во всех браузерах, так что это будет лучший способ.

Ответ 3

Здесь вы идете:

div.style.height = "auto"

Ответ 4

Я только что создал скрипку со следующим кодом

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>

и переопределяет свойство высоты css, примененное к #foo. В reset стиль, как упоминалось другими, устанавливает свойство стиля элемента в пустую строку

el.style.height = "";

Fiddle здесь

Ответ 5

Ну, другой вариант может заключаться в использовании getComputedStyle для получения текущего свойства стиля и напомнить это значение, когда переменная должна быть reset.

var style = getComputedStyle(div);

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

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

Ответ 6

Я бы использовал функцию removeAttribute() из документа

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