Расчитать высоту блока

Обсуждение вопросов клиентского программирования.

Модератор: Duncon

Ответить
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

Вот такая задачка есть. Я не силен в JS, но нужно посчитать высоту блока на основании высоты другого блока.

Можно ли прямо в CSS прописать:
height: ф-я получения высоты блока name;

Если нет, то как это еще реализовать? Есть еще тот факт, что блок от которого получаем высоту никак не указан т.е получить нужно его высоту, до которой он растянулся в браузере в пикселях.
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

Плз, помогите неужели никак нельзя его высоту посчитать?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

ну может и можно но больно геморно, по идее к блоку нужно будет обратиться, а значит у него id должно быть (что сложно зависит от того чем является блок), такой расчет позможен к примеру из php...
Зачем такой гемор, не проще ли процентное соотношение указать и не париться..
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

Duncon,
Да не проще выходит, нужно верикально div растянуть по высоте безз лишних заморочек. Их 3 штуки как колонки. Две флоатятся влево и вправо и одна посередине. Никак немогу найти способ, чтобы их легко растянуть... Думал вот так сделать. Вычислять самый длинный и остальные приравнивать. Мб можно еще как-то?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Таблицы растягивай..
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

Duncon,
Это как внутри него? Или на таблицу заменить?
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

На таблицу, внутри текст сам изменять размены будет...
вот тебе примерчик

Код: Выделить всё

<table cellspacing="0" cellpadding="0" border="1" width="100%" height="120">
  <tr>
    <td width="20%" align="left">текст</td>
    <td width="80%" align="right">текст2</td>
  </tr>
</table>
В данном коде я сделал растяжку по длинне, так же можно и по высоте, можно внутрь засунуть еще таблицу и вней задать еще деление как раз получится разрез там где надо.. В нутрь таблицы можешь засовывать все что угодно, только помни ее границы зарубают форматирования документа, ну увидешь потом...
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Nikoshka, ответ на самое первое сообщение

Код: Выделить всё

<html>
<head>
<title>test</title>
<script type="text/javascript">
function init() {
	var source = document.getElementById("source");
	var target = document.getElementById("target");
	target.style.height = source.offsetHeight + "px";
	target.style.width = source.offsetWidth + "px";
}
</script>
</head>
<body onload="init();">
[img]http://www.google.com/intl/ru_ALL/images/logo.gif[/img]
<div id="target" style="border: 1px solid #000000;"></div>
</body>
</html>
Аватара пользователя
Nikoshka
Сообщения: 120
Зарегистрирован: 15 май 2006, 05:24

Oscar,
Спасибо большое, оказалось все так просто :( Только не нашел я так хорошего справочника по DOM :(
Кстати когда пробовал onload у меня не работало ни в какую:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Аватара пользователя
Oscar
Сообщения: 963
Зарегистрирован: 29 май 2004, 13:44
Откуда: Мюнхен (рожден в Киеве)
Контактная информация:

Nikoshka,
http://w3schools.com/htmldom/dom_reference.asp

и onload с таким док-тайпом у меня работает (FF 2.0, IE 6), видать не в нём проблема
Ответить