В CSS overflow:hidden
устанавливается для родительских контейнеров, чтобы позволить ему расширяться с высотой их плавающих дочерних элементов.
Но есть еще одна интересная особенность в сочетании с margin: auto
...
Если ПРЕДЫДУЩИЙ брат является плавающим элементом, он фактически будет отображаться рядом с ним. То есть, если родственный элемент является, float:left
тогда контейнер с float:none overflow:hidden
будет отображаться справа от родственного брата, без новой строки - точно так же, как если бы он плавал в обычном потоке. Если предыдущий брат - float:right
это контейнер, он появится слева от него. Изменение размера этого контейнера точно покажет, что он центрирован между плавающими элементами. Скажем, если у вас есть два предыдущих брата и сестры, один float:left
другой float:right
, контейнер появится посередине между ними.
Так вот проблема ...
Как сохранить такой макет БЕЗ маскировки детей?
Поиск в Интернете дает мне возможность узнать, как clear:both
расширять контейнер ... но я не могу найти альтернативного решения для сохранения левого / правого центрирования предыдущего ребенка. Если вы создадите контейнер, overflow:visible
он внезапно проигнорирует поток макета плавающих элементов и окажется слоистым поверх плавающего элемента.
Итак, вопрос :
Мне нужен контейнер, overflow:hidden
чтобы сохранить макет ...
как я могу сделать так, чтобы дети не были замаскированы? Мне нужно, чтобы ребенок был абсолютно позиционирован относительно родителя вне контейнера.
ИЛИ
Как мне сделать overflow:visible
так, чтобы я мог абсолютно позиционировать дочерний элемент относительно родителя вне контейнера ... ЕЩЁ СОХРАНИТЬ родственный поток float-like-layout-flow?