web-dev-qa-db-fra.com

Définir la largeur ou la hauteur de l'élément en mode Standards

Est-il possible de définir la largeur ou la hauteur d'un élément HTML (ex. <div>) en JavaScript en mode Standards?

Notez le code suivant:

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

Lorsque l'utilisateur appuie sur la touche changer la largeur, la largeur de <div> devrait changer.

Cela fonctionne bien lorsque la déclaration du type de document détermine le mode Quirks. En mode Standards, je ne peux pas modifier la taille de l'élément de cette façon.

Est-il possible de manipuler la taille d'un élément en mode Standards? Comment contourner ce dysfonctionnement?

107
rafalry

Essayez de déclarer l'unité de largeur:

e1.style.width = "400px"; // width in PIXELS
166
Alexandre Perez

La propriété style vous permet de spécifier des valeurs pour les propriétés CSS.

La propriété CSS width prend une longueur pour valeur.

Les longueurs nécessitent des unités. En mode quirks, les navigateurs ont tendance à considérer les pixels s’ils disposent d’un entier au lieu d’une longueur. Spécifiez les unités.

e1.style.width = "400px";
35
Quentin