2011-01-12 14 views
85

¿Es posible establecer el ancho o alto del elemento HTML (por ejemplo, <div>) en JavaScript en el modo de estándares?Establecer ancho o alto del elemento en el modo Estándares

Nota el siguiente código:

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

Cuando el usuario pulsa el botón de cambio de anchura , ancho de la <div> 's debe cambiar.

Funciona bien cuando la declaración de doctype determina el modo Quirks. En el modo estándar, no puedo cambiar el tamaño del elemento de esta manera

¿Es posible manipular el tamaño de un elemento en el modo estándar? ¿Cómo pasar por alto esta disfuncionalidad?

Respuesta

131

Try declarando la unidad de ancho:

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

Ahaha .. quiero decir "miau" (c). Me he pasado alrededor de una hora tratando de descubrir por qué no se aplica el estilo. ¡Gracias! –

29

La propiedad style le permite especificar valores para las propiedades CSS.

La propiedad CSS width toma una longitud como su valor.

Las longitudes requieren unidades. En el modo peculiar, los navegadores tienden a asumir píxeles si se les proporciona un número entero en lugar de una longitud. Especificar unidades

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

Gracias por la respuesta, también correcta. – rafalry

Cuestiones relacionadas