TLDR: Как получить контейнер для обертывания нескольких наложенных друг на друга разделов по высоте жидкости?Обтекание нескольких наложенных друг на друга divs
У меня есть DIV с некоторыми объектами:
<div class="container">
<div class="a" style="height: 300px;">Tab page a</div>
<div class="b" style="height: 100px; display: none;">Tab page b</div>
<div class="c" style="height: 200px; display: none;">Tab page c</div>
...
</div>
На основе действий пользователя, я хочу, чтобы исчезнуть b
как a
исчезает (т.е. кроссфейд их). Это требует, чтобы оба они были выровнены в верхнем левом углу container
. Обычно я просто использовал position: absolute;
со значениями по умолчанию top: 0;
и left: 0;
, чтобы наложить их. Проблема заключается в том, что тогда контейнер обрушивается на 0px tall (а не на высоту его содержимого, который я хочу), поскольку a
и b
были удалены из потока.
Хорошо, поэтому я не могу использовать абсолютное позиционирование пользователя на a
и b
. Как еще я могу заставить их перекрыться? Отрицательный margin-top
также не будет работать, так как я не знаю высот детей (они могут динамически меняться в зависимости от их содержимого), и их может быть любое число.
Возможно ли это даже без JS? Если это не так, то какой наименее опасный способ, который не предполагает A) небольшое число детей в container
или B), дети фиксированного размера (известны заранее или иначе).
Да, к сожалению, я заранее не знаю высоты (они могут меняться, когда пользователь добавляет дополнительную информацию), и у меня будет намного больше, чем 2 элемента в контейнере. – 0x24a537r9