В 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?