W 3 słowach: inline-block
jest lepiej.
Blok wbudowany
Jedyną wadą tego display: inline-block
podejścia jest to, że w IE7 i poniżej element może być wyświetlany tylko inline-block
wtedy, gdy był już inline
domyślnie. Oznacza to, że zamiast używać <div>
elementu, musisz użyć <span>
elementu. To wcale nie jest wielka wada, ponieważ semantycznie a <div>
służy do dzielenia strony, podczas gdy a <span>
służy po prostu do pokrycia zakresu strony, więc nie ma dużej różnicy semantycznej. Ogromną zaletą display:inline-block
jest to, że gdy inni programiści utrzymują Twój kod w późniejszym czasie, jest znacznie bardziej oczywiste, co display:inline-block
i co text-align:right
próbuje osiągnąć, niż instrukcja float:left
lub float:right
. Mój ulubiony zaletą inline-block
podejścia jest to, że jest łatwy w obsłudze vertical-align: middle
, line-height
itext-align: center
aby idealnie wyśrodkować elementy w intuicyjny sposób. Znalazłem świetny post na blogu o tym, jak zaimplementować blokowanie inline w różnych przeglądarkach, na blogu Mozilli . Oto zgodność przeglądarki .
Pływak
Powodem, dla którego ta float
metoda nie nadaje się do układu strony, jest to, że float
właściwość CSS pierwotnie miała służyć jedynie do zawijania tekstu wokół obrazu (w stylu magazynu) i z założenia nie jest najlepiej dostosowana do ogólnych celów związanych z układem strony. Podczas późniejszej zmiany elementów pływających czasami mogą wystąpić problemy z pozycjonowaniem, ponieważ nie występują one w przepływie strony . Inną wadą jest to, że generalnie wymaga poprawek, w przeciwnym razie może zepsuć niektóre aspekty strony. Clearfix wymaga dodania elementu za elementami pływającymi, aby powstrzymać ich rodzica przed zapadnięciem się wokół nich, co przecina linię semantyczną między oddzieleniem stylu od treści i tym samym jest anty-wzorcem w programowaniu stron internetowych .
Wszelkie problemy z białymi znakami wymienione w powyższym linku można łatwo naprawić za pomocą white-space
właściwości CSS.
Edytować:
SitePoint jest bardzo wiarygodnym źródłem porad dotyczących projektowania stron internetowych i wydaje się, że mają to samo zdanie co ja:
Jeśli jesteś nowicjuszem w układach CSS, wybaczono ci myśl, że używanie elementów pływających CSS w pomysłowy sposób jest szczytem umiejętności. Jeśli zużyłeś tyle samouczków dotyczących układu CSS, ile możesz znaleźć, możesz przypuszczać, że opanowanie elementów pływających jest rytuałem przejścia. Będziesz oszołomiony pomysłowością, zdumiony złożonością i zyskasz poczucie osiągnięcia, gdy w końcu zrozumiesz, jak działają platformy.
Nie daj się zwieść. Masz pranie mózgu.
http://www.sitepoint.com/give-floats-the-flick-in-css-layouts/
Aktualizacja 2015 - Flexbox to dobra alternatywa dla nowoczesnych przeglądarek :
.container {
display: flex; /* or inline-flex */
}
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
Więcej informacji
Aktualizacja z 21 grudnia 2016 r
Bootstrap 4 usuwa obsługę IE9, a tym samym usuwa elementy zmiennoprzecinkowe z wierszy i przechodzi na pełny Flexbox.
Żądanie ściągnięcia nr 21389
inline
, a nieinline-block
. Ale pierwszy z powiązanych jest dobry: stackoverflow.com/a/11823622/918414