Jak pływaki pracy
Kiedy elementy pływające istnieć na stronie, nie-pływające elementy zawinięcia elementów pływających, podobne do tego, jak tekst krąży wokół obrazu w gazecie. Z perspektywy dokumentu (oryginalny cel HTML), w ten sposób działają elementy pływające.
float
vs display:inline
Przed wynalezieniem display:inline-block
, strony internetowe używać float
ustawić elementy obok siebie. float
jest preferowany w stosunku do display:inline
, ponieważ nie można ustawić wymiarów elementu (szerokość i wysokość), a także pionowych krawędzi (góra i dół) - które elementy pływające mogą zrobić, ponieważ są traktowane jako elementy blokowe.
problemy Float
Głównym problemem jest to, że używamy float
przed swoim przeznaczeniem.
Innym jest to, że podczas gdy float
pozwala na równoległe blokowanie elementów, pływaki nie nadają kształtowi jego pojemnikowi. To jest jak position:absolute
, gdzie element jest "wyjęty z układu". Na przykład, gdy pusty pojemnik zawiera pływające 100px x 100px <div>
, <div>
nie nadadzą 100px wysokość do pojemnika.
W przeciwieństwie do position:absolute
wpływa na zawartość, która go otacza. Treść po pływającym elemencie "zawinie się" wokół elementu. Zaczyna się od renderowania obok, a następnie pod nim, tak jak tekst gazety przepływałby wokół obrazu.
Clearfix na ratunek
Co clearfix nie jest zmuszenie treść po pływaków lub pojemnika zawierającego pływaki do renderowania poniżej. Istnieje wiele wersji do clear-fix, ale ma swoją nazwę od wersji, która jest powszechnie używana - tej, która używa właściwości CSS clear
.
Przykłady
Here are several ways to do clearfix, w zależności od przypadku przeglądarki i używać. Trzeba tylko wiedzieć, jak wykorzystać właściwość clear
w CSS i jak pływają symbole renderowania w każdej przeglądarce, aby uzyskać idealną klarowność między przeglądarkami.
Co masz
Twój styl warunkiem jest formą clearfix z wstecznej kompatybilności. I found an article o tej poprawce. Okazuje się, że jest to OLD Clearfix - wciąż obsługujący stare przeglądarki. Istnieje również nowsza, czystsza wersja tego artykułu. Oto podział:
Pierwszy clearfix masz dołącza niewidzialną pseudo-element, który jest stylizowany clear:both
między elementu docelowego i następnego elementu. Zmusza pseudoelement do renderowania poniżej celu, a następny element poniżej pseudoelementu.
Drugi dołącza styl display:inline-block
, który nie jest obsługiwany przez wcześniejsze przeglądarki. Blok inline jest jak wbudowany, ale daje pewne właściwości blokujące elementy, takie jak szerokość, wysokość oraz pionowe wypełnienie. Było to przeznaczone dla IE-MAC.
To była ponowna aplikacja display:block
z powodu powyższej reguły IE-MAC. Ta zasada była "ukryta" od IE-MAC.
W sumie te 3 zasady utrzymania .clearfix
pracy cross-browser, ze starymi przeglądarkami w umyśle.
nie będzie ostatecznej 'display: block Wyświetlanie 'override': wbudowane -block' we wszystkich przeglądarkach, w tym obsługujących 'inline-block'? – takteek
edytowałem moją odpowiedź. to nie ostatni element. po nim jest pusty element. czasami widzisz, że inni dodają '
' po ostatnim pływającym elemencie, aby emulować "pustą zawartość" ': after'. dotyczy to starszych przeglądarek. – JosephTwoje wyjaśnienie jest dobrze szczegółowe. Ale dlaczego kropka oznacza puste? – Gnijuohz