Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Изменение высоты div'а (https://javascript.ru/forum/dom-window/13849-izmenenie-vysoty-div%27.html)

SnikerS 16.12.2010 14:06

Изменение высоты div'а
 
Здравствуйте.
Блок info имеет различную высоту в зависимости от его содержимого. Задача: сделать блоки ads и info равной высоты.
<style>
#info {width:260px; height:auto; position:absolute; right:17px; //right:19px;}
#ads {clear:both;}
</style>

Подскажите, пожалуйста, в чём ошибка?
<script type="text/javascript" language="JavaScript">
	var block = document.getElementById('info');
	var space = document.getElementById('ads');
	a = block.currentStyle.height;
	space.style.height = a;
</script>

exec 16.12.2010 14:29

document.getElementById('ads').style.height = document.getElementById('info').offsetHeight + 'px';

SnikerS 11.01.2011 13:17

Когда на странице блок "ads" не отображается, то появляются ошибки.
Сведения об ошибке на веб-странице:

Цитата:

Агент пользователя: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0) штамп времени: Tue, 11 Jan 2011 10:19:44 UTC

Сообщение: Требуется объект

ksa 11.01.2011 13:19

SnikerS, нормальный тестовый пример сделай - на нём и покажут...

Простой вёрсткой там чего, не обойтись никак?

SnikerS 11.01.2011 14:45

Цитата:

Простой вёрсткой там чего, не обойтись никак?
ksa, возможно моих знаний не хватает.

Abocms. Темплейт содержит 3 файла: общий, категория, товар.
Модуль рекламы (catright) выводится в правой колонке и распространяется на все страницы каталога (общий: и для категорий, и для товаров).
Но у товаров (только товаров) есть абсолютно позиционированный блок с сертификатами (div_dop_info) также в правой колонке, поэтому у меня модуль с рекламой наезжал на блок с сертификатами.
Я сделал так:
<script type="text/javascript" language="JavaScript">
document.getElementById('catright').style.marginTop = document.getElementById('div_dop_info').offsetHeight + 'px';
</script>

А теперь мне нужно модуль с рекламой скрыть на страницах с товарами, но показывать на всех остальных:
<script type="text/javascript" language="JavaScript">
	var height = document.getElementById('div_dop_info').offsetHeight;
	if (height != 0)
		document.getElementById('catright').style.display = "none";
</script>

К сожалению если div_dop_info на странице отсутствует, то появляется ошибка :(

r00mich 11.01.2011 15:02

Цитата:

Сообщение от SnikerS (Сообщение 87377)
ksa, возможно моих знаний не хватает.

Abocms. Темплейт содержит 3 файла: общий, категория, товар.
Модуль рекламы (catright) выводится в правой колонке и распространяется на все страницы каталога (общий: и для категорий, и для товаров).
Но у товаров (только товаров) есть абсолютно позиционированный блок с сертификатами (div_dop_info) также в правой колонке, поэтому у меня модуль с рекламой наезжал на блок с сертификатами.
Я сделал так:
<script type="text/javascript" language="JavaScript">
document.getElementById('catright').style.marginTop = document.getElementById('div_dop_info').offsetHeight + 'px';
</script>

А теперь мне нужно модуль с рекламой скрыть на страницах с товарами, но показывать на всех остальных:
<script type="text/javascript" language="JavaScript">
	var height = document.getElementById('div_dop_info').offsetHeight;
	if (height != 0)
		document.getElementById('catright').style.display = "none";
</script>

К сожалению если div_dop_info на странице отсутствует, то появляется ошибка :(

Сделай проверку на существование элемента

<script type="text/javascript" language="JavaScript">
	if (document.getElementById('div_dop_info')) {
		document.getElementById('catright').style.display = "none";
	}
</script>


Часовой пояс GMT +3, время: 14:20.