Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

flex-wrap CSS property

Baseline Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit September 2015 browserübergreifend verfügbar.

Die flex-wrap CSS Eigenschaft legt fest, ob Flex-Elemente in einer Linie erzwungen werden oder in mehrere Linien umgebrochen werden können. Wenn das Umbruch erlaubt ist, legt es die Richtung fest, in der die Linien gestapelt werden.

Probieren Sie es aus

flex-wrap: nowrap;
flex-wrap: wrap;
flex-wrap: wrap-reverse;
flex-wrap: wrap balance;
<section class="default-example" id="default-example">
  <div class="transition-all" id="example-element">
    <div>Item One</div>
    <div>Item Two</div>
    <div>Item Three</div>
    <div>Item Four</div>
    <div>Item Five</div>
    <div>Item Six</div>
    <div>Item Seven</div>
  </div>
</section>
#example-element {
  border: 1px solid #c5c5c5;
  width: 80%;
  display: flex;
}

#example-element > div {
  background-color: rgb(0 0 255 / 0.2);
  border: 3px solid blue;
  width: 60px;
  margin: 10px;
}

Die Kurzschreibweise der flex-flow Eigenschaft kann verwendet werden, um sowohl die flex-direction als auch flex-wrap Eigenschaften festzulegen, die die Haupt- und Nebenachse des Flex-Containers definieren.

Syntax

css
/* Keyword values */
flex-wrap: nowrap;
flex-wrap: wrap;
flex-wrap: wrap-reverse;
flex-wrap: balance;
flex-wrap: wrap balance;
flex-wrap: balance wrap-reverse;

/* Global values */
flex-wrap: inherit;
flex-wrap: initial;
flex-wrap: revert;
flex-wrap: revert-layer;
flex-wrap: unset;

Werte

Diese Eigenschaft wird als ein einzelner Wert aus der folgenden Liste oder als zwei durch Leerzeichen getrennte Werte bei der Verwendung von balance angegeben:

nowrap

Die Flex-Elemente werden in einer einzigen Zeile angeordnet, was dazu führen kann, dass der Flex-Container überläuft. Dies ist der Anfangswert.

wrap

Die Flex-Elemente können in mehrere Zeilen umbrochen werden.

wrap-reverse

Verhält sich wie wrap, jedoch werden die Linien in umgekehrter Reihenfolge angeordnet.

balance

Gibt an, dass über mehrere Zeilen verteilte Flex-Elemente so verteilt werden, dass die Zeilenlängen so ähnlich wie möglich sind. Wenn balance als einziges Schlüsselwort angegeben wird, ist das andere Schlüsselwort standardmäßig wrap.

Beschreibung

Die flex-wrap Eigenschaft wird verwendet, um festzulegen, ob die Flex-Elemente des Flex-Containers auf mehrere Flex-Linien umbrechen dürfen oder nicht und, falls Umbruch eingestellt ist, ob die Kinder gleichmäßig auf Flex-Linien verteilt werden sollen.

Der Anfangswert nowrap gibt an, dass alle Elemente in einer einzigen Flex-Linie angeordnet werden sollten, was bedeutet, dass sie den Container überlaufen können. Die Schlüsselwörter wrap und wrap-reverse verhindern Überläufe, indem sie angeben, dass Flex-Elemente über mehrere Zeilen fließen oder umbrochen werden können.

Mit wrap ist der Kreuz-Start dem inline-start oder block-start äquivalent, abhängig vom flex-direction Wert und dem aktuellen Schreibmodus. Mit wrap-reverse ist der Kreuz-Start dem inline-end oder block-end äquivalent.

Ausbalancierung der Flex-Element-Verteilung

Standardmäßig wird bei Angabe von wrap oder wrap-reverse jede Flex-Zeile mit Flex-Elementen gefüllt, bevor Elemente in die nächste Zeile umgebrochen werden. Dies kann zu einer ungleichmäßigen Verteilung der Elemente führen, wobei die letzte Flex-Zeile aus weniger Elementen besteht. Wenn die flex-grow Werte dieser Elemente ungleich Null sind, wird der zusätzliche verfügbare Raum auf diese weniger Elemente verteilt, wodurch sie viel größer als die Elemente auf gefüllten Flex-Linien werden.

Das Schlüsselwort balance kann verwendet werden, um die Elemente in ausgewogener Weise über die Zeilen zu verteilen. Optional kann die flex-line-count Eigenschaft verwendet werden, um die Mindestanzahl von Zeilen festzulegen, über die die auszugleichenden Elemente verteilt werden sollen.

Wenn balance das einzige angegebene Schlüsselwort ist, ist das andere Schlüsselwort standardmäßig wrap.

Ein ausgewogen umgebrochener Flex-Container kann einen flex-line-count Wert haben, um die Mindestanzahl von Zeilen anzugeben, über die die Flex-Elemente verteilt werden sollten. Die flex-line-count Eigenschaft hat keine Auswirkung, wenn balance nicht innerhalb von flex-wrap angegeben ist.

Wenn balance zusammen mit nowrap angegeben wird, ist die Eigenschaft ungültig.

Formale Definition

Anfangswertnowrap
Anwendbar aufflexible Container
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

Formale Syntax

flex-wrap = 
nowrap |
[ wrap | wrap-reverse ] || balance

Beispiele

Einstellen von Flex-Container-Umbruchwerten

HTML

html
<h4>This is an example for flex-wrap:wrap</h4>
<div class="content">
  <div class="red">1</div>
  <div class="green">2</div>
  <div class="blue">3</div>
</div>
<h4>This is an example for flex-wrap:nowrap</h4>
<div class="content1">
  <div class="red">1</div>
  <div class="green">2</div>
  <div class="blue">3</div>
</div>
<h4>This is an example for flex-wrap:wrap-reverse</h4>
<div class="content2">
  <div class="red">1</div>
  <div class="green">2</div>
  <div class="blue">3</div>
</div>

CSS

css
/* Common Styles */
.content,
.content1,
.content2 {
  color: white;
  font: 100 24px/100px sans-serif;
  height: 150px;
  width: 897px;
  text-align: center;
}

.content div,
.content1 div,
.content2 div {
  height: 50%;
  width: 300px;
}
.red {
  background: orangered;
}
.green {
  background: yellowgreen;
}
.blue {
  background: steelblue;
}

/* Flexbox Styles */
.content {
  display: flex;
  flex-wrap: wrap;
}
.content1 {
  display: flex;
  flex-wrap: nowrap;
}
.content2 {
  display: flex;
  flex-wrap: wrap-reverse;
}

Ergebnisse

Demonstration des balance Schlüsselworts

Dieses Beispiel zeigt die Auswirkungen des balance Schlüsselworts innerhalb der flex-wrap Eigenschaft und verschiedener flex-line-count Werte.

HTML

Wir fügen einen Container <div> mit einer class von box hinzu, der zehn Kind-<div>s hat.

html
<div class="box">
  <div>One</div>
  <div>Two</div>
  <div>Three</div>
  <div>Four</div>
  <div>Five</div>
  <div>Six</div>
  <div>Seven</div>
  <div>Eight</div>
  <div>Nine</div>
  <div>Ten</div>
</div>

Wir fügen auch Steuerungen hinzu, um Funktionen des Flex-Containers ändern zu können, einschließlich:

  • Umschalten von flex-wrap zwischen den Werten wrap und wrap-reverse.
  • Umschalten des balance Schlüsselworts ein und aus.
  • Ändern des flex-line-count Werts.

Wir haben das HTML und JavaScript zur Kürze versteckt.

CSS

Wir wenden display: flex auf die .box an, um es in einen Flex-Container zu verwandeln, und setzen dann einige flex-wrap und flex-line-count Werte, um die Flex-Kinder gleichmäßig über mindestens drei Flex-Linien zu verteilen. Sie können die Werte im Live-Demo ändern. Wir setzen auch einen flex Wert von 1 1 150px auf die Flex-Kinder, sodass sie eine Basisbreite von 150px haben, wobei verbleibender Raum gleichmäßig zwischen Elementen auf derselben Flex-Linie verteilt wird.

css
.box {
  display: flex;
  flex-wrap: wrap balance;
  flex-line-count: 3;
}

.box > * {
  flex: 1 1 150px;
}

Wir haben den Rest des CSS zur Kürze versteckt.

Ergebnisse

Ändern Sie die Einstellungen der Formsteuerelemente, um zu sehen, wie sie die Ausgabe beeinflussen. Beachten Sie, wie:

  • Um zwischen wrap und wrap-reverse zu wechseln, ändert die Richtung, in der die Flex-Linien entlang der Kreuzachse angeordnet sind.
  • Das Einstellen von balance bewirkt, dass die Flex-Elemente gleichmäßig über die verfügbaren Flex-Linien verteilt werden.
  • Das Ändern des flex-line-count Werts ändert die Mindestanzahl der Linien, über die die Elemente verteilt werden. Die flex-line-count Eigenschaft, und daher der Schieberegler, hat keine Wirkung, es sei denn, balance ist aktiviert.
  • Da die Flex-Elemente standardmäßig über vier Flex-Linien verteilt sind, hat das Ändern des flex-line-count auf einen Wert unter 5 keine Wirkung. Werte von 5 bis 10 fügen eine zusätzliche Flex-Linie hinzu.
  • Da es 10 Flex-Elemente gibt, haben flex-line-count Werte von 10 oder mehr denselben Effekt — ein Element wird auf jede der 10 Flex-Linien platziert.

Spezifikationen

Spezifikation
CSS Flexible Box Layout Module Level 1
# flex-wrap-property

Browser-Kompatibilität

Siehe auch