Detaillierte Erläuterung der Probleme und Lösungen beim flexiblen Mehrspaltenlayout

Detaillierte Erläuterung der Probleme und Lösungen beim flexiblen Mehrspaltenlayout

Das Flex-Layout ist zweifellos einfach und leicht zu verwenden. Es macht unser Layout einfacher und schneller. Ich glaube jedoch, dass viele Leute bei der Verwendung von Flex für ein mehrspaltiges Layout auf die folgende Situation stoßen werden:

Dies geschieht, weil wir justify-content: space-between verwenden. Der Grund für die Verwendung dieser Einstellung ist, dass wir den Abstand zwischen den Elementen nicht speziell berechnen müssen, Flex berechnet ihn für uns. Aus diesem Grund tritt jedoch die obige Situation auf, wenn wir in der nächsten Zeile nicht genügend Elemente haben. Dann ist das Problem klar. Es wird durch nicht genügend Elemente in der letzten Zeile verursacht. Dann können wir uns überlegen, der letzten Zeile ein leeres Element hinzuzufügen, um Platz einzunehmen. Dadurch kann das obige Problem perfekt gelöst werden:

Hier verwenden wir Pseudoelemente, um Platzhalter zu erstellen. Beachten Sie, dass Pseudoelemente nur die Breite festlegen müssen, niemals die Höhe. Die Einzelheiten lauten wie folgt:

.container::nach{
      Inhalt: '';
      Breite: 320px;
    }

Die Wirkung ist wie folgt:

Wir werden jedoch feststellen, dass wir bei der Entwicklung von Displays nicht nur auf dreispaltige Layouts stoßen, sondern auch auf vier- und fünfspaltige Layouts. Offensichtlich funktioniert der obige Ansatz derzeit nicht. Wie lässt sich das Problem also lösen? Die Lösung ist auch sehr einfach. Das Prinzip ist dasselbe. Verwenden Sie leere Elemente, um Platz zu belegen. Dieses Mal werden wir keine Pseudoelemente verwenden. Wir verwenden echte DOM-Elemente für den Betrieb:

Schreiben Sie vorab eine Zeile leerer Elemente: wie folgt

<div Klasse="Container">
    <div Klasse="Box">1</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <div Klasse="Box">2</div>
    <!-- Trennlinie (unten ist das leere Element, das ich vorab geschrieben habe) -->
    <div Klasse="Box"></div>
    <div Klasse="Box"></div>
    <div Klasse="Box"></div>
    <div Klasse="Box"></div>
    <div Klasse="Box"></div>
    <div Klasse="Box"></div>
    <div Klasse="Box"></div>
  </div>

Entsprechende CSS-Einstellungen:

div:leer{
      Höhe: 0;
      Breite: 160px;
      Rand: keiner;
    }

Die Wirkung ist wie folgt:

Zu diesem Zeitpunkt werden wir feststellen, dass wir unser ursprüngliches Problem unabhängig von der Anzahl der Spalten perfekt lösen können.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

<<:  Detaillierte Erläuterung der MySQL-Optimierung für Schreibprobleme im großen Maßstab

>>:  Auf Wiedersehen Docker: So wechseln Sie in 5 Minuten zu Containerd

Artikel empfehlen

So verweisen Sie im WeChat-Applet wxss auf externe CSS-Dateien und Iconfonts

Ursache So importieren Sie externe Dateien in ein...

Reines CSS zum Ändern der Farbe des Bildes

Die CSS-Technik zum Ändern der Farbe eines Bildes...

Tutorial zur Installation und Konfiguration der Version MySQL 5.7.23

Ich habe drei Stunden gebraucht, um MySQL selbst ...

Detaillierte Erklärung zur Verwendung von Vue-Resource-Interceptors

Vorwort Abfangjäger In einigen modernen Front-End...

Beispielerklärung für Ausführungskontext und Ausführungsstapel in JavaScript

JavaScript - Prinzipienreihe Wenn wir in der tägl...

CSS-Stil zum Zentrieren des HTML-Tags im Browser

CSS-Stil: Code kopieren Der Code lautet wie folgt:...

Ein Artikel bringt Ihnen die Vererbung von JS-Funktionen bei

Inhaltsverzeichnis 1. Einleitung: 2. Vererbung de...

MySQL-Backup-Tabellenvorgang basierend auf Java

Der Kern ist mysqldump und Runtime Der Vorgang is...

React Diff-Algorithmus-Quellcodeanalyse

Inhaltsverzeichnis Einzelner Knoten Diff Einzelel...

Erstellen eines Dateisystems für ARM-Entwicklungsboards unter Linux

1. Bitte laden Sie den Busybox-Quellcode online h...

So deinstallieren Sie das native OpenJDK von Linux und installieren Sun JDK

Siehe: https://www.jb51.net/article/112612.htm Üb...