Задать ширину или высоту элемента в режиме стандартов - PullRequest
105 голосов
/ 12 января 2011

Можно ли установить ширину или высоту элемента HTML (например, <div>) в JavaScript в режиме стандартов?

Обратите внимание на следующий код:

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

Когда пользователь нажимает кнопку change width , ширина <div> должна измениться.

Работает нормально, когда объявление doctype определяет Quirks Mode. В стандартном режиме я не могу изменить размер элемента таким образом

Можно ли манипулировать размером элемента в режиме стандартов? Как обойти эту дисфункциональность?

Ответы [ 2 ]

161 голосов
/ 12 января 2011

Попробуйте объявить единицу ширины:

e1.style.width = "400px"; // width in PIXELS
34 голосов
/ 12 января 2011

Свойство style позволяет указывать значения для свойств CSS.

Свойство CSS width принимает длину в качестве значения.

Длина требует единиц. В режиме причуд браузеры, как правило, принимают пиксели, если им предоставляют целое число вместо длины. Укажите единицы измерения.

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