CSS-Float-Eigenschaftsdiagramm, Details der Float-Eigenschaft

CSS-Float-Eigenschaftsdiagramm, Details der Float-Eigenschaft

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.

CSS的float示例1

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:

CSS的float例2

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:

CSS的float示例3

Wenn mehr Text vorhanden ist, wird der Absatz weiterhin um das Bild herumgeführt:

CSS的float例4

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;
}

CSS的float例如5

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:

CSS的float的例子6

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;
}

CSS的float例如7

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;
}

CSS的float例如8

Was aber, wenn die Bilder unterschiedliche Höhen haben?

CSS的float例如:9

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;
}

CSS的float例如10

Jetzt richten wir es vertikal aus:

Code kopieren
Der Code lautet wie folgt:

img
{
vertikale Ausrichtung: oben;
}

CSS的float例11

Es ist zu beachten, dass, wenn dies bei höheren Bildern der Fall ist, alle anderen Bilder das vorherige umgeben, zum Beispiel:

CSS的float例如12

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

CSS的float例如13

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:

CSS的float例如14

Der folgende Text beginnt, den gesamten Block zu umfließen:

CSS的float例如15

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:

CSS的float例如16

In diesem Fall erben die restlichen Bilder weiterhin „float: left“. Entsprechend verzerrt erscheint der Text:

CSS的float例如17

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:

CSS的float例如18

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;
}

CSS的float例如19
Wenn wir jedoch „float: left“ aus der Liste hinzufügen, verschwindet der Hintergrund vollständig:
CSS的float例如20

Wenn wir zuerst die Höhe auf UL einstellen:

Code kopieren
Der Code lautet wie folgt:

ul
{
Höhe: 300px;
}

CSS的float例如21
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;
}

CSS的float實例22

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

Artikel empfehlen

Wie lang ist eine Funktion in js?

Inhaltsverzeichnis Vorwort Warum Wie viel kostet ...

So verwenden Sie den Vue-Video-Player für eine Live-Übertragung

Inhaltsverzeichnis 1. Installieren Sie den Vue-Vi...

MySQL 8.0.17 Installations- und einfaches Konfigurationstutorial unter macOS

Wenn Sie nicht verstehen, was ich geschrieben hab...

JavaScript-Grundlagenoperatoren

Inhaltsverzeichnis 1. Betreiber Zusammenfassen 1....

Grundkenntnisse der MySQL-Datenbank

Inhaltsverzeichnis 1. Datenbanken verstehen 1.1 D...

JavaScript Canvas Tetris-Spiel

Tetris ist ein sehr klassisches kleines Spiel, un...

Das WeChat-Applet realisiert die Chatroom-Funktion

In diesem Artikel wird der spezifische Code des W...

Beispiel für die Migration einer MySQL-Online-Protokollbibliothek

Ich möchte Ihnen von einem aktuellen Fall erzähle...

Tiefgreifendes Verständnis der Matching-Logik von Server und Standort in Nginx

Server-Abgleichlogik Wenn Nginx entscheidet, in w...

Detaillierte Erläuterung der MySql-Datentyp-Tutorialbeispiele

Inhaltsverzeichnis 1. Kurzübersicht 2. Detaillier...