Die korrekte Verwendung der CSS-Float-Eigenschaft kann zu einer gewaltigen Aufgabe werden, da so viel abgedeckt werden muss und es viele Probleme mit der Browserkompatibilität gibt. Seine Positionierung umfasst nicht nur den enthaltenden Block, sondern auch Zeilenboxen, Blockboxen und Inline-Boxen. Dieser Artikel enthält anschauliche Beispiele für die Anwendung der Float-Eigenschaft sowie einige Fehler. ![]() Was ist ein „Float“? Bestimmte Elemente in CSS sind Blockelemente. Wenn Sie beispielsweise zwei Absatz-Tags als P setzen, werden sie auf zwei Zeilen platziert. Jedes Element belegt eine Zeile. Wenn Sie es in einer Zeile anzeigen möchten, können Sie das Inline-Attribut verwenden, um es auf der Seite anzuzeigen. Eine weitere effektive Möglichkeit, die Umbrucheigenschaften von Seitenelementen zu ändern, ist die Verwendung von Float. Ein typisches Beispiel ist die Verwendung von „Float“, um ein Bild links- oder rechtsbündig auszurichten. Unten sehen Sie einen einfachen HTML-Code mit einem Bild und einem Absatz: Code kopieren Der Code lautet wie folgt:<img src="http://lorempixum.com/200/200/" /> <p>Lorem ipsum …</p> Sie erscheinen in einer neuen Zeile: ![]() Fügen wir dem Bild etwas CSS-Code hinzu, um sein Erscheinungsbild zu ändern, hehe: Code kopieren Der Code lautet wie folgt:img { schweben: rechts; Rand: 20px; } An diesem Punkt erhalten wir die richtige Ausrichtung: ![]() Wenn mehr Text vorhanden ist, wird der Absatz weiterhin um das Bild herumgeführt: ![]() Beispielsweise müssen wir den Einzug von Bild und Text um 20 Pixel einstellen. Wenn Sie Code wie diesen schreiben, ist der folgende Code falsch und wird nicht funktionieren: Code kopieren Der Code lautet wie folgt:P { Rand: 20px; } Auf diese Weise wird es richtig sein: Code kopieren Der Code lautet wie folgt:img { Rand: 20px; } ![]() Dann fragen Sie sich vielleicht, warum der 20-Pixel-Einzug des oben geschriebenen Absatzes „p“ nicht funktioniert und nicht effektiv ist? Um das herauszufinden, fügen wir einen Skelettcode hinzu: Code kopieren Der Code lautet wie folgt:P { Rand: durchgehend 1 Pixel schwarz; } Die Ergebnisse werden Sie möglicherweise überraschen: ![]() Es stellt sich heraus, dass sich das Bild ohne die Ränder (sie haben hier keine Auswirkung darauf, dienen nur zu Ihrem Verständnis) innerhalb des Absatzes befindet! Daher hat die Margin-Eigenschaft im ersten Fall keine Auswirkung. Um dieses Problem zu lösen, können Sie float:left für Absatz p verwenden und eine absolute Breite festlegen: Der Effekt nach dem Festlegen ist wie folgt Code kopieren Der Code lautet wie folgt:img { schweben: rechts; Rand: 20px; } P { schweben: links; Breite: 220px; Rand: 20px; } ![]() Seltsame Regel "Float" Kommen wir nun zu komplexeren Möglichkeiten der Anwendung der „Float“-Regel, der Transformation von Float-Objekten. Dies kann beim Erstellen von Miniaturansichten erforderlich sein. Zum Beispiel: Code kopieren Der Code lautet wie folgt:<ul> <li><img src="http://placehold.it/100x100&text=1"/></li> <li><img src="http://placehold.it/100x150&text=2"/></li> <li><img src="http://placehold.it/100x100&text=3"/></li> <li><img src="http://placehold.it/100x100&text=4"/></li> <li><img src="http://placehold.it/100x100&text=5"/></li> <li><img src="http://placehold.it/100x150&text=6"/></li> <li><img src="http://placehold.it/100x100&text=7"/></li> </ul> Standardmäßig nimmt jedes li-Element eine eigene Zeile ein. Wenn wir jedes „float: left“ einfügen, wird das Bild mit einem Zeilenumbruch ausgerichtet: Code kopieren Der Code lautet wie folgt:li { schweben: links; Rand: 4px; } ![]() Was aber, wenn die Bilder unterschiedliche Höhen haben? ![]() Wenn wir den Elementen in der Liste Anzeigeattribute hinzufügen, ist der Effekt besser, wie in der folgenden Abbildung dargestellt Code kopieren Der Code lautet wie folgt:li { Anzeige: inline; } ![]() Jetzt richten wir es vertikal aus: Code kopieren Der Code lautet wie folgt:img { vertikale Ausrichtung: oben; } ![]() Es ist zu beachten, dass, wenn dies bei höheren Bildern der Fall ist, alle anderen Bilder das vorherige umgeben, zum Beispiel: ![]() Ein weiteres Beispiel ist das Ändern der Reihenfolge von Elementen. Wir haben eine Liste von Elementen. Code kopieren Der Code lautet wie folgt:<UL> <LI> <img src="http://placehold.it/100x100&text=1"/> </li> <li> <img src="http://placehold.it/100x100&text=2"/> </li> <LI> <img src="http://placehold.it/100x100&text=3"/> </li> <li> <img src="http://placehold.it/100x100&text=4"/> </li> <LI> <img src="http://placehold.it/100x100&text=5"/> </li> <li> <img src="http://placehold.it/100x100&text=6"/> </li> </ul> Wenn wir sie in umgekehrter Reihenfolge haben möchten, müssen wir nur "float: right:" anstelle von "float: left" verwenden. In HTML ändern wir die Reihenfolge der Elemente nicht, wie im obigen Code gezeigt: Wir verwenden CSS, um ![]() Mithilfe von „Float“ ist es praktisch, Elemente auf der Seite zu gruppieren, aber wir stehen vor einem großen Problem: Der folgende Inhalt (Text oder Block) wird sich ebenfalls ändern. Beispielsweise haben wir eine Reihe von Bildern: ![]() Der folgende Text beginnt, den gesamten Block zu umfließen: ![]() Um dies zu vermeiden, müssen Sie die Eigenschaft „clear“ verwenden. Wenn wir dies auf das zweite Bild anwenden: Code kopieren Der Code lautet wie folgt:ul li:ntes-Kind(2) { klar: links; } Folgendes erhalten wir: ![]() In diesem Fall erben die restlichen Bilder weiterhin „float: left“. Entsprechend verzerrt erscheint der Text: ![]() Wir müssen clear:both für die Absätze verwenden: Code kopieren Der Code lautet wie folgt:P { klar: beides; } Die Lösung unseres Problems ist: ![]() Stellen wir uns nun vor, dass wir im vorherigen Beispiel den Hintergrund für die Galerie festlegen müssen. Wenn das Element nicht schwimmt, erhalten wir Folgendes: Code kopieren Der Code lautet wie folgt:ul { Hintergrund: grau; } ![]() Wenn wir jedoch „float: left“ aus der Liste hinzufügen, verschwindet der Hintergrund vollständig: ![]() Wenn wir zuerst die Höhe auf UL einstellen: Code kopieren Der Code lautet wie folgt:ul { Höhe: 300px; } ![]() Das Problem wird dadurch jedoch nicht gelöst, da die Größe des Hintergrunds festgelegt ist. Dabei hilft uns die Klasse „clearfix“, die auf die ‚DIV‘-Elemente auf der gleichen Ebene wie die UL angewendet wird. Code kopieren Der Code lautet wie folgt:.klarfix { klar: beides; } Es gibt eine andere Lösung mit „overflow“: Code kopieren Der Code lautet wie folgt:ul { Überlauf: automatisch; } ![]() Neun Regeln für Float-Items: Ein schwebendes Element kann nicht über die Kanten seines übergeordneten Containers hinausragen. Der linke Rand einer linksschwebenden Box darf nicht links von der linken Kante des sie umgebenden Blocks erscheinen. : : : : : : : : : : : : : : : Es ist ersichtlich, dass die Regeln des Schwebens sehr verwirrend sind, aber anhand dieser Regeln lässt sich leicht erkennen, dass der Zweck des Schwebens darin besteht, es so nah wie möglich an der Oberseite oder links/rechts zu platzieren, ohne den umschließenden Block zu überfüllen, jedoch nicht höher als die Oberseite der davor generierten Blockbox, Schwebebox und Linienbox. |
<<: Drei gängige Möglichkeiten zum Einbetten von CSS in HTML-Dokumente
>>: Neue Funktionen von JS ES: Einführung in Erweiterungsoperatoren
Inhaltsverzeichnis Vorwort Warum Wie viel kostet ...
glibc ist die von GNU veröffentlichte libc-Biblio...
Inhaltsverzeichnis Einführung 1. Code zum Starten...
Inhaltsverzeichnis 1. Installieren Sie den Vue-Vi...
Wenn Sie nicht verstehen, was ich geschrieben hab...
Inhaltsverzeichnis 1. Betreiber Zusammenfassen 1....
Inhaltsverzeichnis 1. Datenbanken verstehen 1.1 D...
Inhaltsverzeichnis Vorwort Analyse und Lösung des...
Tetris ist ein sehr klassisches kleines Spiel, un...
In diesem Artikel wird der spezifische Code des W...
Ich möchte Ihnen von einem aktuellen Fall erzähle...
In der tatsächlichen Arbeit werden reguläre Ausdr...
Server-Abgleichlogik Wenn Nginx entscheidet, in w...
Inhaltsverzeichnis 1. Kurzübersicht 2. Detaillier...
Better-Scroll-Bildlaufprinzip Als übergeordneter ...