2011-01-12 11 views
85

Czy można ustawić szerokość lub wysokość elementu HTML (np. <div>) w JavaScript w trybie standardów?Ustaw szerokość lub wysokość elementu w trybie standardów

Uwaga: poniższy kod:

<html> 
<script language="javascript" type="text/javascript"> 
    function changeWidth(){ 
     var e1 = document.getElementById("e1"); 
     e1.style.width = 400; 
    } 
</script> 
<body> 
    <input type="button" value="change width" onclick="changeWidth()"/> 
    <div id="e1" style="width:20px;height:20px; background-color:#096"></div> 
</body> 
</html> 

Kiedy użytkownik naciśnie zmiany szerokości przycisk, szerokość <div> „s powinna ulec zmianie.

Działa poprawnie, gdy deklaracja doctype określa tryb Quirks. W trybie standardów nie można zmienić rozmiaru elementu w ten sposób

Czy można manipulować rozmiarem elementu w trybie standardów? Jak ominąć tę dysfunkcjonalność?

Odpowiedz

131

Spróbuj deklarując jednostkę szerokości:

e1.style.width = "400px"; // width in PIXELS 
+0

Ahaha .. mam na myśli "miau" (c). Spędziłem około godziny, próbując dowiedzieć się, dlaczego styl nie jest stosowany. Dzięki! –

29

Obiekt style pozwala określić wartości dla właściwości CSS.

Właściwość CSS width przyjmuje długość jako swoją wartość.

Długości wymagają jednostek. W trybie quirks przeglądarki mają tendencję do przyjmowania pikseli, jeśli są one wyposażone w liczbę całkowitą zamiast długości. Określ jednostki.

e1.style.width = "400px"; 
+0

Dziękuję za odpowiedź, również poprawną. – rafalry

Powiązane problemy