Sie haben schon von "Floats clearen" gehört, aber verstehen Sie es wirklich? Das ganze Problem ist, dass gefloatete Objekte nicht ordnungsgemäß zur Höhe des Objekts beitragen, in dem sie sich befinden. Wie Sie unten sehen können, befinden sich diese Divs mit der Klasse "floated_box" innerhalb des Divs "main_container", aber auf der Seite befinden sie sich außerhalb dieses Container-Divs.
#main_container {
width: 400px;
margin: 20px auto;
border: 2px solid #cccccc;
padding: 5px;
}
.floated_box {
float: left;
width: 100px;
height: 100px;
border: 1px solid #990000;
margin: 10px;
}
<div id="main_container">
<p>Some content.</p>
<div class="floated_box"></div>
<div class="floated_box"></div>
<div class="floated_box"></div>
<div class="floated_box"></div>
<div class="floated_box"></div>
</div>

Alles, was wir tun müssen, ist den Float zu clearen, und dieses ganze Problem verschwindet. Fügen Sie dieses leere Div NACH Ihrem letzten gefloateten Objekt ein
<div style="clear: both;"></div>
Und Sie erhalten dies

Diese Lösung fügt zwar etwas nutzlosen Markup hinzu, was dem Tao von CSS widerspricht, aber es ist eine einfache, browserübergreifende Lösung, die Sie nicht im Stich lässt.
Es gibt einen besseren Weg, als ein nicht-semantisches, leeres Div-Element zum Clearen von Floats zu verwenden, mehrere sogar, aber ich werde den einfachsten auflisten. Ich verwende einen Zeilenumbruch, um Floats zu clearen.
.brclear {
clear:both;
height:0;
margin:0;
font-size: 1px;
line-height: 0;
}
Im HTML sieht es dann so aus
Es nimmt keinen Platz ein und ist dem leeren Div vorzuziehen.
Ich verstehe, was Sie meinen, aber ich denke, das ist ein Patt. Ein nutzloses HTML-Element ist dasselbe wie ein anderes, wenn Sie mich fragen, und diese Methode überlädt nicht das CSS.
#main_container {overflow: auto}
Das sollte es ohne zusätzlichen Markup erledigt haben.
#main_container {overflow: auto} hat mein Problem ohne ein weiteres Div behoben! Danke!!!!
Ich verwende {overflow: auto;} ständig dafür. Gibt es einen Grund, warum ich stattdessen Divs zum Clearen verwenden sollte? Overflow erscheint mir etwas hacky, aber dann sind es leere Divs auch...
Das Problem mit overflow auto
Funktioniert hervorragend, wenn die Seite geladen wird. Aber wenn Sie die Seite in der Größe ändern oder zusätzliche Inhalte über Ajax zu den enthaltenden Elementen hinzufügen, passt sich auto der zusätzlichen Höhe nicht an. In diesem Szenario erscheint eine Scrollleiste innerhalb des Elements, dem die :auto overflow-Eigenschaft zugewiesen wurde.
Ich suche derzeit nach einer Lösung dafür.
Ich habe versucht, #container{overflow:auto;} zu verwenden, aber es hat stattdessen eine horizontale Scrollleiste in meinem Container erzeugt. Clear div tut das nicht. Zugegeben, mein CSS ist im Moment etwas chaotisch, aber ich versuche, mich darin zurechtzufinden.
In diesem Artikel gibt es kein "Warum".
Ich suche jetzt nach alternativen Artikeln, um tatsächlich herauszufinden, WARUM das funktioniert.
Vielleicht sollten Sie den Artikel vervollständigen, um den "Warum"-Teil zu erklären?
Hier gibt es mehr Informationen: https://css-tricks.de/all-about-floats/
Danke Chris!