2012-11-23 10 views
11

Eventuali duplicati:
how to remove css property using javascript?qual è il modo corretto di rimuovere/ripristinare una proprietà css tramite javascript?

ho questo javascript:

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

e così via ...

Più tardi mi trovo di fronte alla necessità di rimuovere una proprietà (non cha nging il suo valore, la rimozione davvero significato: come se io non avevo impostato prima)

ho codificato qualcosa di simile:

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

Solo soluzione n.3 sembra funzionare ma anche così ... io non sono sicuro che questo è il modo corretto per farlo (Io uso solo Chrome per testare questa)

Qualcuno sa che cosa c'è nel modo corretto? che funziona su tutti i browser corretti?

Grazie

+0

solito 2 funziona per me. –

+2

Controlla questo: http://stackoverflow.com/questions/2027935/how-to-remove-css-property-using-javascript ... In sostanza "" lo farà. –

risposta

1

Non c'è "modo corretto". Una volta Microsoft ha inventato style.removeAttribute(), ma non è supportato. Il modo migliore è impostarlo sul valore standard.

Modifica: Come descritto da "Dystroy", impostandolo su "" lo reimposta in tutti i browser, in modo che sarebbe il modo migliore.

+0

Impostalo su "" sembra reimpostarlo su tutti i browser predefiniti. –

+0

@looper suona come il tuo è la risposta 'corretta'. Lo sceglierò a meno che qualcuno non ne abbia uno più completo. – Zo72

1

qui si va:

div.style.height = "auto" 
+5

Ricorda che il valore iniziale potrebbe non essere stato 'auto'. Potrebbe essere stato specificato un altro valore. –

+1

Ma se la domanda dice che vuole _remove_ il valore allora non viene resettato al valore originale, ma a "auto". Ovviamente "auto" si applica solo all'altezza. – zvona

+0

Non solo altezza, ma almeno altezza, concordato. – EricG

-1

userei la funzione removeAttribute() dal documento

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

Questo non funzionerebbe se l'altezza è data dai CSS. –

0

Bene, un'altra opzione potrebbe essere quella di utilizzare getComputedStyle per ottenere la proprietà di stile corrente e richiamare quel valore quando è necessario ripristinare una variabile.

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

Ho appena creato un violino con il seguente codice

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

L'impostazione della proprietà per Auto imposta in realtà l'attributo style sull'elemento da

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

e sostituisce la proprietà height css applicato a #foo. Per ripristinare uno stile, come detto da altri impostare la proprietà style dell'elemento su una stringa vuota

el.style.height = ""; 

Fiddle here

Problemi correlati