W CSS overflow:hidden
jest ustawiany na kontenerach nadrzędnych, aby umożliwić rozszerzanie się wraz z wysokością ich pływających dzieci.
Ale ma też inną interesującą funkcję w połączeniu z margin: auto
...
Jeśli POPRZEDNIE rodzeństwo jest elementem pływającym, w rzeczywistości pojawi się obok niego. Oznacza to, że jeśli rodzeństwo jest, float:left
to kontener z float:none overflow:hidden
pojawi się po prawej stronie rodzeństwa, bez nowej linii - tak jakby płynął w normalnym przepływie. Jeśli poprzednim rodzeństwem jest, float:right
kontener pojawi się po lewej stronie rodzeństwa. Zmiana rozmiaru tego kontenera pokaże dokładnie, że jest wyśrodkowany pomiędzy pływającymi elementami. Powiedzmy, że jeśli masz dwoje poprzedniego rodzeństwa, jedno float:left
drugie float:right
, pojemnik pojawi się pośrodku między nimi.
Więc oto problem ...
Jak zachować ten typ układu BEZ maskowania dzieci?
Wyszukiwanie w internecie daje mi sposoby na clear:both
powiększanie i rozszerzanie kontenera ... ale nie mogę znaleźć żadnego alternatywnego rozwiązania, aby utrzymać lewe / prawe wyśrodkowanie poprzedniego dziecka. Jeśli utworzysz kontener, overflow:visible
wówczas kontener nagle zignoruje przepływ układu elementów pływających i pojawi się warstwowo na wierzchu elementu pływającego.
Więc pytanie :
Muszę mieć kontener, overflow:hidden
żeby zachować układ ...
jak mogę to zrobić, żeby dzieci nie były zamaskowane? Potrzebuję ustawić dziecko bezwzględnie względem rodzica poza pojemnikiem.
LUB
W jaki overflow:visible
sposób mogę absolutnie ustawić dziecko względem rodzica poza kontenerem ... JESZCZE zachować przepływ typu float-like-layout-rodzeństwa?