W CSS overflow:hiddenjest 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:leftto kontener z float:none overflow:hiddenpojawi się po prawej stronie rodzeństwa, bez nowej linii - tak jakby płynął w normalnym przepływie. Jeśli poprzednim rodzeństwem jest, float:rightkontener 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:leftdrugie 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:bothpowię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:visiblewó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:visiblesposób mogę absolutnie ustawić dziecko względem rodzica poza kontenerem ... JESZCZE zachować przepływ typu float-like-layout-rodzeństwa?