Wie kommt es, dass meine Float-Elemente nicht in ihrem übergeordneten Element sind?
Lesezeit: 3 Minuten
dave
Im Grunde habe ich also dieses Wrapper-Div, und alle darin enthaltenen Elemente sind Floating-Elemente. Die einzige Sache ist, dass die Grenze des Wrapper-Div keine Floating-Elemente enthält. Beispiel:
<div id = "wrapper>
<div id = "content"></div>
</div>
Im Grunde genommen ist #content nicht innerhalb der Grenze von #wrapper eingeschlossen, sondern wird immer noch darin ausgerichtet, warum ist das so?
mögliches Duplikat von Welche Methode von ‘clearfix’ ist am besten?
– Pekka
8. Januar 2011 um 0:29 Uhr
Super, vielen Dank. Aber die letzte Antwort war einfacher zu erklären.
– dave
8. Januar 2011 um 0:46 Uhr
Markus Whybrow
Sie müssen das Container-Div “clearfixen”.
Floating-Elemente werden bei der Berechnung der Abmessungen eines Containers nicht berücksichtigt, es gibt jedoch mehrere Problemumgehungen, um das gewünschte Ergebnis zu erzielen.
Das einfachste
Fügen Sie einfach ein Div wie dieses als letztes untergeordnetes Element in Ihrem Container-Div hinzu:
<div style="clear:both"></div>
Wie @Pekka kommentiert, gibt es viele andere Möglichkeiten, den in dieser SO-Frage aufgeführten Effekt (ohne zusätzliches Markup) zu erzielen:
Welche ‘clearfix’-Methoden kann ich verwenden?
Da dieses div eine Höhe haben kann und es das Hinzufügen eines zusätzlichen Elements zum Dokument erfordert, wird diese Methode im Allgemeinen nicht bevorzugt.
– QUentin
8. Januar 2011 um 0:36 Uhr
@David True, ich bevorzuge die Verwendung einer Clearfix-Klasse, aber das erfordert offensichtlich ein wenig Einrichtung.
– Marcus Whybrow
8. Januar 2011 um 0:38 Uhr
Vielleicht nicht bevorzugt, aber es hat das Problem perfekt gelöst. Was ist also die andere bevorzugte Methode in einfachen Worten?
– dave
8. Januar 2011 um 0:47 Uhr
@dave Eine Klasse, die Sie auf den Container anwenden, der CSS verwendet, um Inhalt nach dem Container einzufügen, der seine Höhe über die schwebenden Kinder zieht. Dies wird bevorzugt, da es Ihren Markup-Quellcode semantisch glücklich hält (dh keine Divs vorhanden sind, die nichts vom Inhalt darstellen).
– Marcus Whybrow
8. Januar 2011 um 0:49 Uhr
@dave overflow: hidden wie ich in meiner Antwort sagte
– QUentin
8. Januar 2011 um 0:53 Uhr
QUentin
Weil das Schwimmerpunkt ist, Ihnen zu erlauben, Dinge zu tun wie
Wenn Sie Elemente in einer Reihe anordnen möchten (mit optionalem Umbruch), dann suchen Sie nach Verwendung Flexbox stattdessen. Es ist ein Layout-Tool, das dafür entwickelt wurde.
Hinzu kommt: Ein schwebendes Element fügt seinem übergeordneten Element keine Höhe/Breite hinzu. Also wenn die schwamm div ist das einzige, was in den Eltern divist das übergeordnete div 0 x 0 Pixel groß.
– keithjgrant
8. Januar 2011 um 0:34 Uhr
10137400cookie-checkWie kommt es, dass meine Float-Elemente nicht in ihrem übergeordneten Element sind?yes
mögliches Duplikat von Welche Methode von ‘clearfix’ ist am besten?
– Pekka
8. Januar 2011 um 0:29 Uhr
Super, vielen Dank. Aber die letzte Antwort war einfacher zu erklären.
– dave
8. Januar 2011 um 0:46 Uhr