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