В CSS overflow:hidden
устанавливается в родительских контейнерах, чтобы позволить ему расширяться с высотой их плавающих детей.
Но у него также есть еще одна интересная функция в сочетании с margin: auto
...
Если PREVIOUS sibling - это плавающий элемент, он будет на самом деле отображаться рядом с ним. То есть, если sibling float:left
, то контейнер с float:none overflow:hidden
появится справа от брата, без новой строки - точно так же, как если бы он был плавающим в нормальном потоке. Если предыдущий брат - float:right
, то контейнер появится слева от брата. Изменение размера этого контейнера будет точно отображать его в центре между плавающими элементами. Скажем, если у вас есть два предыдущих брата, один float:left
другой float:right
, контейнер появится в центре между ними.
Итак, проблема ...
Как сохранить этот тип макета БЕЗ маскировки детей?
Googling во всем Интернете дает мне способы как clear:both
и расширять контейнер... но я не могу найти альтернативного решения для поддержания центрирования слева и справа. Если вы создадите контейнер overflow:visible
, тогда контейнер неожиданно игнорирует поток макета плавающих элементов и появляется многоуровневым элементом плавающего элемента.
Итак вопрос:
Я должен иметь контейнер overflow:hidden
для сохранения макета...
как я могу сделать так, чтобы дети не замаскировались? Мне нужно, чтобы ребенок был абсолютно позиционирован относительно родителя вне контейнера.
ИЛИ
Как мне overflow:visible
, чтобы я мог абсолютно позиционировать дочерний элемент относительно родителя вне контейнера... YET сохранить параллельный поток float-like-layout-flow?