In 3 Worten: inline-blockist besser.
Inline-Block
Der einzige Nachteil des display: inline-blockAnsatzes besteht darin, dass in IE7 und darunter ein Element nur angezeigt werden kann, inline-blockwenn es bereits inlinestandardmäßig war. Dies bedeutet, dass Sie anstelle eines <div>Elements ein <span>Element verwenden müssen. Es ist überhaupt kein großer Nachteil, da a semantisch <div>zum Teilen der Seite dient, während a <span>nur zum Abdecken eines Seitenbereichs dient, sodass es keinen großen semantischen Unterschied gibt. Ein großer Vorteil davon display:inline-blockist, dass, wenn andere Entwickler Ihren Code zu einem späteren Zeitpunkt warten, es viel offensichtlicher ist, was display:inline-blockund was text-align:right zu erreichen versucht, als eine float:leftoder- float:rightAnweisung. Mein Lieblingsvorteil des inline-blockAnsatzes ist, dass er einfach zu bedienen vertical-align: middleist line-heightundtext-align: centerdie Elemente auf eine intuitive Weise perfekt zu zentrieren. Ich habe im Mozilla-Blog einen großartigen Blog-Beitrag über die Implementierung eines browserübergreifenden Inline-Blocks gefunden . Hier ist die Browserkompatibilität .
Schweben
Der Grund dafür, dass die Verwendung der floatMethode nicht für das Layout Ihrer Seite geeignet ist, liegt darin, dass die floatCSS-Eigenschaft ursprünglich nur dazu gedacht war, einen Text um ein Bild zu wickeln (Magazinstil), und sich aufgrund ihres Designs nicht am besten für allgemeine Seitenlayoutzwecke eignet. Wenn Sie schwebende Elemente später ändern, treten manchmal Positionierungsprobleme auf, da sie nicht im Seitenfluss enthalten sind . Ein weiterer Nachteil ist, dass im Allgemeinen ein Clearfix erforderlich ist, da sonst Aspekte der Seite beschädigt werden können. Der Clearfix erfordert das Hinzufügen eines Elements nach den schwebenden Elementen, um zu verhindern, dass die übergeordneten Elemente um sie herum zusammenfallen. Dies überschreitet die semantische Grenze zwischen der Trennung von Stil und Inhalt und ist daher ein Anti-Muster in der Webentwicklung .
Alle im obigen Link erwähnten Leerraumprobleme können leicht mit der white-spaceCSS-Eigenschaft behoben werden .
Bearbeiten:
SitePoint ist eine sehr glaubwürdige Quelle für Webdesign-Ratschläge und sie scheinen die gleiche Meinung zu haben wie ich:
Wenn Sie mit CSS-Layouts noch nicht vertraut sind, wird Ihnen verziehen, dass die Verwendung von CSS-Floats auf einfallsreiche Weise die Höhe der Fähigkeiten ist. Wenn Sie so viele CSS-Layout-Tutorials wie möglich verwendet haben, können Sie davon ausgehen, dass das Beherrschen von Floats ein Übergangsritus ist. Sie werden von dem Einfallsreichtum geblendet sein, der von der Komplexität überrascht ist, und Sie werden ein Erfolgserlebnis gewinnen, wenn Sie endlich verstehen, wie Floats funktionieren.
Lass dich nicht täuschen. Du wirst einer Gehirnwäsche unterzogen.
http://www.sitepoint.com/give-floats-the-flick-in-css-layouts/
Update 2015 - Flexbox ist eine gute Alternative für moderne Browser :
.container {
display: flex; /* or inline-flex */
}
.item {
flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]
}
Mehr Info
21. Dezember 2016 Update
Bootstrap 4 entfernt die Unterstützung für IE9 und entfernt somit Floats aus Zeilen und die volle Flexbox.
Pull-Anfrage Nr. 21389
inline, nichtinline-block. Aber der erste in verwandten ist gut: stackoverflow.com/a/11823622/918414