Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > document.getElementById('myid').style.height


Автор: nmc 12.2.2011, 22:03
При изменении высоты дива в IE не  меняется визуально высота блока,
хотя алерт выводит новое значение высоты
Код

window.onload = function () {

          var sidebar = document.getElementById("sidebar").offsetHeight;

             
              ...

             document.getElementById('t').style.height = sidebar+'px';

             alert('new_heigth_t= '+document.getElementById('t').style.height);
          
}

В Ореra и Firefox все работает.

В чем причина?

Автор: Michael.de 12.2.2011, 23:27
nmc, а что показывает alert(sidebar)? И как связаны между собой элементы с id 't' и 'sidebar'?

Автор: nmc 12.2.2011, 23:50
алерт показывает новую высоту - записанную строчкой выше.  

Элементы   -  id 't' и 'sidebar' это два дива (левая и правая колонка страницы).
(Вообще скрипт это уравнивание высоты дивов в зависимости от текста в них)

В FF (как писал выше работает) фаербаг 
показывает 
Код

<div id="t" style="height: здесь новая высота выводимая в алерте;" >  ...</div>


В самом диве высоты нет - как понимаю скрипт дописывает.


Автор: SelenIT 13.2.2011, 15:40
1) Какой IE? У 6-го своеобразная трактовка height (воспринимает как min-height).
2) Указанные id-ы нигде на странице не дублируются? В том числе в качестве name др. элементов (старые IE часто не видят разницы между id и name).
3) Выравнивать колонки http://chikuyonok.ru/2009/06/float-columns/.

Автор: nmc 13.2.2011, 21:19
1) IE 8
2) id уникальны (других элементов с таким названием нет)

Если скрипт правильный, может быть причина не в скрипте?
IE не хочет перерисовывать новую высоту дива - хоть и получает ее высоту.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)