Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Разные вопросы по элементам интерфейса от wmag -_- (https://javascript.ru/forum/dom-window/30512-raznye-voprosy-po-ehlementam-interfejjsa-ot-wmag-_.html)

wmag 07.08.2012 01:51

Разные вопросы по элементам интерфейса от wmag -_-
 
Вот думаю, что б не засорять поток, буду все вопросы, возникающие по ходу обучения задавать в одной теме.

вопрос 1: как привязать блоку div высоту другого блока div ?

подробности: код генерируется PHP, высота исходного ДИВ неизвестна, т.к. меняется на разных страницах.
а вот ДИВ блока должен быть завязан на высоту первого блока, ибо от этого зависит внешний вид страницы.

pashak 07.08.2012 02:06

Поясните условие. Как расположены DIV один относительно другого (внутри, соседние элементы, имеют разные родительские элементы)?

wmag 07.08.2012 02:11

pashak, родитель один, блоки стоят рядом

pashak 07.08.2012 02:25

Пускай первый блок имеет id="div1", второй - id="div2". Тогда пропишите во второй блок правило:
height:inherit;
а сразу за вторым блоком вставьте скрипт:
<script type="text/javascript">(function(){var d=document.getElementById("div1");d.parentNode.style.height=d.offsetHeight+"px";})();</script>
Т.е. проблема решается установкой точной высоты для родительского элемента. Если первый блок обрамлён, то вычтите из полученной высоту удвоенную толщину рамки.
Объясняю, почему устанавливается высота именно родительского элемента: это для запаса на случай, если может появиться и третий блок, требующий той же высоты.

bes 07.08.2012 12:55

верстать таблицей, использовать display: (table, table-cell) http://htmlbook.ru/css/display

PS: приводите примеры

wmag 07.08.2012 13:10

Цитата:

Сообщение от pashak (Сообщение 195170)
Пускай первый блок имеет id="div1", второй - id="div2". Тогда пропишите во второй блок правило:
height:inherit;
а сразу за вторым блоком вставьте скрипт:
<script type="text/javascript">(function(){var d=document.getElementById("div1");d.parentNode.style.height=d.offsetHeight+"px";})();</script>
Т.е. проблема решается установкой точной высоты для родительского элемента. Если первый блок обрамлён, то вычтите из полученной высоту удвоенную толщину рамки.
Объясняю, почему устанавливается высота именно родительского элемента: это для запаса на случай, если может появиться и третий блок, требующий той же высоты.

не работает так. может потому что блок 2 в себе содержит некоторое количество мелких блоков, которые в сумме дают большую высоту <-_->

все-таки хотелось бы установить высоту именно для второго блока.


Все, разобрался, Pashak, спасибо большое!

bes 07.08.2012 14:30

Цитата:

Сообщение от wmag
не работает так. может потому что блок 2 в себе содержит некоторое количество мелких блоков, которые в сумме дают большую высоту <-_->

Приведите образец структуры и, судя по ответу, читать http://learn.javascript.ru/position и http://learn.javascript.ru/metrics

wmag 07.08.2012 16:36

Вопрос 2: Как заставить контент ДИВ2 вращаться по вертикали?

Подробности: содержимое слоя: маленькие дивы с картинками

bes 07.08.2012 16:44

Вопрос 3: Стоит ли помогать ТС с такой реакцией?

Подробности: маленькое содержимое, слоистые картинки

wmag 07.08.2012 16:56

bes, зачем предлагать использовать самолет, когда вопрос был о том, как настроить паруса на корабле? =)
(это я про ваш совет с "display: (table, table-cell) http://htmlbook.ru/css/display")

литературу читаю потихоньку, спасибо


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