CSS: относительная высота блока.

lovchy

nacido para cifrar
CSS: относительная высота блока.

Есть группа вертикальных слоёв (в конкретном случае -- 3). Первые два -- фиксированной высоты, последний должен занимать всё, оставшееся пространство.

По спецификации CSS, 'height: 100%' заполняет 100 процентов высоты блока, содержащего данный, соответственно при простом указании height: 100%, третий блок уходит на скроллинг на высоту двух верхних.

height: auto; не подходит ибо последний div будет содержать textarea/iframe, который тоже надо соответственно растягивать на 100%.

В IE есть expression, но очень важна совместимость хотя бы с firefox. Да и по стандартам желательно бы.
 

Кром

Новичок
Если ты делаешь WYSIWYG редактор, можешь посмотреть, как это реализовано в уже существующих.
 

lovchy

nacido para cifrar
Кром
Нет, я не делаю WYSIWYG-редактор. Я делаю pastebin. Задача, по сути, очень общая, на самом деле.

Как это сделать в общем -- я знаю. Таблица. Вопрос был конкретно про блоки (div). Интересно, что в спецификации по CSS2 я не нашёл ни одного способа сделать это, так что проблема не в браузерах. Я верю, что проблема в том, что я плохо искал. Если нет, то в топку такие стандарты.
 

V?A

Guest
можно попробывать сделать это скриптом, если так не получается,
your_div.style.height = document.body.offsetHeight - <высоты других дивов>;
 

lovchy

nacido para cifrar
Да, этот вариант я рассматривал. Вешать яваскрипт на перерисовку страницы придётся -- вдруг юзер решит заресайзить страницу. Это очень криво...

V?A
Кстати, как повесить JS на перерисовку при ресайзе?
 

V?A

Guest
window.onresize = ChSize;
sec_div.style.height = document.body.offsetHeight - 200;
function ChSize() {
sec_div.style.height = document.body.offsetHeight - 200;
}
 

lovchy

nacido para cifrar
V?A
Ну чтож.. будем делать через задницу.
Низкий поклон. Бтв, вот вторую строчку надо в onload="" вынести ;]. Как вызов процедуры.
 
Сверху