Heim > Web-Frontend > CSS-Tutorial > Wie erzwinge ich mit Flexbox zwei Reihen mit jeweils vier Elementen, wenn ich die Größe von acht Elementen dynamisch ändere?

Wie erzwinge ich mit Flexbox zwei Reihen mit jeweils vier Elementen, wenn ich die Größe von acht Elementen dynamisch ändere?

Susan Sarandon
Freigeben: 2024-12-29 08:07:10
Original
295 Leute haben es durchsucht

How to Force Two Rows of Four Elements Each Using Flexbox When Dynamically Resizing Eight Elements?

Flexbox-Layout: 4 Elemente pro Zeile

Wenn Sie Flexbox verwenden, um die Größe von 8 Elementen auf der Seite dynamisch zu ändern, wie erzwingen Sie deren Teilung? in zwei Reihen (4 pro Reihe)?

Angesichts des folgenden Codeausschnitts:

<div class="parent-wrapper">
  <div class="parent">
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
    <div class="child"></div>
  </div>
</div>
Nach dem Login kopieren
.parent-wrapper {
  height: 100%;
  width: 100%;
  border: 1px solid black;
}

.parent {
  display: flex;
  font-size: 0;
  flex-wrap: wrap;
  margin: -10px 0 0 -10px;
}

.child {
  display: inline-block;
  background: blue;
  margin: 10px 0 0 10px;
  flex-grow: 1;
  height: 100px;
}
Nach dem Login kopieren

Lösung:

Das Problem liegt bei Flex-Wrap: Wickeln Sie den Flex ein Container , der das Umschließen von Elementen ermöglicht. Flex-grow: 1 ermöglicht jedoch unbegrenztes Wachstum von Elementen, was dazu führt, dass diese nicht umgebrochen werden, wenn ihnen der Platz ausgeht.

Die Lösung besteht darin, eine Breite für das Element zu definieren und es zum Umbrechen zu zwingen:

.parent {
  display: flex;
  flex-wrap: wrap;
}

.child {
  flex: 1 0 21%; /* 展开说明如下 */
  margin: 5px;
  height: 100px;
  background-color: blue;
}
Nach dem Login kopieren

Der erste Wert der Flex-Eigenschaft (1 in unserem Beispiel) verteilt den Platz gleichmäßig auf alle Element, der zweite Wert (0) legt die minimale Breite auf 0 fest und der dritte Wert (21 %) definiert die maximale Breite des Elements auf 21 % der verfügbaren Breite. Wenn Sie es so einrichten, werden die Elemente umbrochen, bevor sie die maximale Breite erreichen, sodass ein Layout mit 4 Elementen pro Zeile entsteht.

Das obige ist der detaillierte Inhalt vonWie erzwinge ich mit Flexbox zwei Reihen mit jeweils vier Elementen, wenn ich die Größe von acht Elementen dynamisch ändere?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage