In 3 Worten: inline-block
ist besser.
Inline-Block
Der einzige Nachteil des display: inline-block
Ansatzes besteht darin, dass in IE7 und darunter ein Element nur angezeigt werden kann, inline-block
wenn es bereits inline
standardmäß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-block
ist, dass, wenn andere Entwickler Ihren Code zu einem späteren Zeitpunkt warten, es viel offensichtlicher ist, was display:inline-block
und was text-align:right
zu erreichen versucht, als eine float:left
oder- float:right
Anweisung. Mein Lieblingsvorteil des inline-block
Ansatzes ist, dass er einfach zu bedienen vertical-align: middle
ist line-height
undtext-align: center
die 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 float
Methode nicht für das Layout Ihrer Seite geeignet ist, liegt darin, dass die float
CSS-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-space
CSS-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