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