2012-11-23 7 views
11

Powiel możliwe:
how to remove css property using javascript?jaki jest poprawny sposób usuwania/resetowania właściwości css za pośrednictwem javascript?

mam ten skrypt:

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

i tak dalej ...

Później mam do czynienia z potrzebą usunięcia nieruchomości (not cha nging swoją wartość, naprawdę usuwania znaczenie: jak ja nie zaszło, że przed)

I kodowane coś takiego:

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

Tylko N.3 rozwiązaniem wydaje się działać, ale nawet tak ... Nie jestem pewien, że to jest poprawny sposób to zrobić (Używam tylko chrom to sprawdzić)

Czy ktoś wie co to poprawny sposób? który działa we wszystkich odpowiednich przeglądarkach?

Dzięki

+0

zwykle 2 działa na mnie. –

+2

Sprawdź to: http://stackoverflow.com/questions/2027935/how-to-remove-css-property-using-javascript ... Zasadniczo "" to zrobi. –

Odpowiedz

1

Nie ma "właściwy sposób". Microsoft kiedyś wymyślił styl.removeAttribute(), ale nie jest obsługiwany. Najlepszym sposobem jest ustawienie go na wartość standardową.

Edytuj: Jak wspomniał dystroy, ustawienie go na "" resetuje go we wszystkich przeglądarkach, więc byłby to najlepszy sposób.

+0

Ustaw opcję "" wydaje się resetować ją do domyślnych we wszystkich przeglądarkach. –

+0

@looper brzmi jak twoje, jest to "poprawna" odpowiedź. Wybiorę to, chyba że ktoś przyjdzie z bardziej wszechstronnym. – Zo72

1

Proszę bardzo:

div.style.height = "auto" 
+5

Należy pamiętać, że wartość początkowa mogła nie być "auto". Mogła zostać określona inna wartość. –

+1

Ale jeśli pytanie mówi, że chce je usunąć, to nie jest ono zresetowane do pierwotnej wartości, ale do "auto". Oczywiście "auto" dotyczy tylko wysokości. – zvona

+0

Nie tylko wysokość, ale przynajmniej wysokość, uzgodnione. – EricG

-1

bym użyć funkcji removeAttribute() z dokumentu

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

To nie zadziała, jeśli wysokość zostanie podana przez CSS. –

0

Cóż, inną opcją może być użycie getComputedStyle, aby uzyskać aktualną właściwość stylu i wywołać tę wartość, gdy zmienna wymaga zresetowania.

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

właśnie stworzył skrzypce z następującego kodu

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

Ustawienie właściwości auto faktycznie ustawia atrybut stylu na elemencie do

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

i zastępuje właściwość height CSS stosowane do #foo. Aby zresetować styl, jak wspomniano przez innych ustaw właściwość stylu tego elementu na pusty ciąg

el.style.height = ""; 

Fiddle here

Powiązane problemy