Wie Sie sehen, nimmt das erste Bild tatsächlich die rechte Position ein. In ähnlicher Weise wird bei einem Zeilenumbruch das vierte Bild auf der rechten Seite platziert. Aus diesem Grund sehen Sie selten, dass jemand eine Liste mit Navigationselementen nach rechts zeigt. Um dies mit der Reihenfolge zu tun, müssen unerwünschte Änderungen in der HTML-Hierarchie vorgenommen werden.
Schwimmer löschen
Floats sind praktisch, um großartige Layout-Leistungen wie das Erstellen von Inhaltsspalten zu erreichen. Nach der Deklaration haben sie jedoch Auswirkungen auf den Rest des Dokumentenflusses, die Ihnen gefallen könnten oder nicht! Nehmen wir zum Beispiel an, wir wollten einen Absatz nach einem Block linksgängiger Listenelemente wie dem oben gezeigten einfügen.
Das Ergebnis ist wahrscheinlich nicht das, was Sie sich erhofft haben:
Die Antwort hier ist die Verwendung der klar Diese Eigenschaft sorgt dafür, dass auf einer bestimmten Seite des Elements, auf das sie angewendet wird, keine Floating-Elemente angezeigt werden können. Nehmen wir zum Beispiel an, wir zielen auf den zweiten Listeneintrag in unserer kleinen Galerie und wenden einen Wert von an klar: links?.
Dieser Code teilt dem Browser mit, dass sich der obere Teil des zweiten Listenelements unter dem unteren Rand aller links beweglichen Elemente (d. H. Des ersten Listenelements) befinden muss. Wenn wir alle diese Elemente nach rechts geschoben hätten, hätten wir sie verwenden müssen klar: richtig? stattdessen.
Beachten Sie, dass danach der Rest der Floated-Items ihren Kurs beibehält. Das liegt daran, dass sie immer noch auf links schweben, die klare Eigenschaft hebt dies jedoch nicht irgendwie auf. Das bedeutet, dass unser Problem mit dem Absatz nicht durch Löschen aller Listenelemente behoben wird.
Stattdessen muss das Absatzelement, das ein Block-Level-Element ist, das nicht verschoben wurde, gelöscht werden. Dadurch wird sichergestellt, dass es unter den schwebenden Elementen und nicht neben ihnen angezeigt wird.
Technisch brauchten wir hier nur ein Link, aber wenn ein Entwickler sicher sein will, dass alle Floats gelöscht werden, ist es üblich, das zu sehen beide verwendeter Wert. Diese Änderung hat unser Problem gut gelöst!
Float-Quirks und Korrekturen
Es gibt eine besondere Aktion, die ausgeführt wird, wenn ein bestimmtes Element nur Elemente mit Fließkommazahl enthält: Die Höhe des übergeordneten Elements wird reduziert. Um dies zu veranschaulichen, möchten wir sagen, wir wollten eine Hintergrundfarbe auf die ungeordnete Liste setzen, die wir in allen unseren Beispielen verwenden. Wenn die Elemente in der Liste nicht verschoben werden, müssen wir die Farbe nur mit CSS auf den Hintergrund anwenden.
Wie Sie im folgenden Beispiel sehen können, wurde das Feld, in dem die ungeordnete Liste definiert ist, grau dargestellt, und die darin enthaltenen Listenelemente sind übereinander angeordnet.
Das zweite, bei dem wir diese Listenelemente schweben lassen, das UL enthält nur schwebende Elemente, und so bricht die Höhe zusammen, so dass ein Neuling die Frage stellt, was mit seiner Hintergrundfarbe geschehen ist.
Es gibt verschiedene Möglichkeiten, dieses Problem zu lösen. Die einfachste und einfachste Lösung ist, dem übergeordneten Element, der ungeordneten Liste, eine explizite Höhe zuzuweisen.
Wie Sie sehen, hat uns dies tatsächlich zu unserem Hintergrund zurückgeführt. Dies ist jedoch selten der erstrebenswerte Kurs, nur weil dies auf lange Sicht bequemer ist, wenn die Höhe automatisch anhand des Inhalts berechnet wird. Wenn wir jetzt drei weitere Bildzeilen zu unserer Liste hinzufügen, ist diese Höhe nicht ausreichend.
Clearfix zur Rettung
Hier ist der Begriff "clear fix". auch geschrieben? clearfix? kommt ins Spiel. Clearfixes adressieren dieses Problem der Absturzhöhe normalerweise durch die Verwendung von klar Eigentum.
Bisher haben Entwickler ein leeres Element (oft ein div) in ihrem HTML-Code auf derselben Ebene wie die floated-Elemente erstellt und dann eine Klasse von? Clearfix? Angewendet. zu diesem leeren Behälter. Zurück in CSS würden Sie dann die Floats auf der Seite löschen. Eigentum.
Dies behebt sofort das Problem der eingestürzten Höhe:
Wenn wir wissen, was wir bereits gelernt haben, wissen wir genau, warum dieser Trick unser Problem gelöst hat. Der Grund, warum die Höhe zusammengebrochen war, liegt darin, dass das übergeordnete Element nur schwebende Kinder enthielt. Jetzt hat es ein Kind, wenn auch ein leeres, das nicht schwebend ist. Die automatische Höhe funktioniert also wieder wie erwartet.
Das Problem bei dieser Methode ist, dass niemand dieses besonders hässliche Element im HTML-Code mochte. Es war einfach nicht semantisch, was bedeutete, dass es nicht half, die klare Hierarchie der Seite zu kommunizieren.
Die neue, ausgefallene Lösung für dieses Problem besteht darin, die Überlauf Eine Eigenschaft, die die Funktionalität von Inhalten regelt, die über die Grenzen der enthaltenen Box hinausgehen. Es stellt sich heraus, dass, wenn Sie Überlauf auf einstellen versteckt oder Auto Auf dem übergeordneten Artikel wird der Höhenzusammenbruch behoben!
Dies ist definitiv die kürzeste und eleganteste Lösung zur Behebung des Problems der Einsturzhöhe und sollte Ihre Strategie sein. Allerdings gibt es Fälle, in denen der Überlauf eines Elements auf gesetzt werden soll sichtbar, was solltest du dann tun?
Die Antwort ist, Nick Gallaghers Micro Clearfix Hack zu verwenden, der einiges geniales CSS verwendet, um dieses Problem zu beheben. Erstens verwendet es: before und: after, um Inhalte hinzuzufügen, mit denen wir im übergeordneten Element etwas erstellen können, das nicht schwebend ist. Sie möchten jedoch wirklich keinen Inhalt hier haben, also lassen wir ihn leer, setzen die Anzeige jedoch auf table, um eine anonyme Zelle zu erstellen (leer und nimmt keinen Platz ein), und verwenden Sie schließlich unseren alten Freund. Dadurch wird der unsichtbare Blockebeneneintrag erstellt, den wir zum Korrigieren der Höhe ohne zusätzliche HTML-Markierung benötigen. Ältere Versionen von IE erfordern ein eigenes Update, sodass auch dieses Problem behoben wird.
Fazit
In diesem Artikel haben wir eine Tonne von großartigen Informationen, sowohl grundlegend als auch kompliziert. Wir haben mit einer Diskussion darüber begonnen, wie die Floats sind und wie sie auf einer grundlegenden Ebene funktionieren, und dann darüber, wie das Festlegen eines Elements zum Floaten die angrenzenden Boxen der beteiligten Elemente beeinflusst, so dass Sie richtig herausfinden können, wie Ihre Margen funktionieren du willst sie.
Als Nächstes gingen wir auf die Grundregeln über die Position eines Floated-Elements ein und kamen zu einigen interessanten Schlussfolgerungen, wie Floating-Elemente mit unterschiedlichen Höhen positioniert werden und wie rechte Float-Elemente in umgekehrter Reihenfolge erscheinen.
Schließlich haben wir die gesamte Geschichte klar dargelegt, wie ein Elternteil, das nur schwebende Kinder enthält, eine eingestürzte Höhe hat und wie Sie diese je nach Szenario lösen können.
Wenn Sie vor dem Lesen dieses Artikels verwirrt wurden, schließen Sie sich dem Club an. Sie verwirren uns zunächst alle. Hoffentlich haben Sie jetzt ein hervorragendes Wissen darüber, wie Floats funktionieren und wie Sie sie verwenden können, um ein beliebiges Layout zu erreichen. Hinterlassen Sie einen Kommentar und lassen Sie uns wissen, ob Sie diese Informationen hilfreich fanden.