DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!
Die Eigenschaft flex-wrap ist eine Untereigenschaft des Flexible Box Layout Module. Sie definiert, ob die Flex-Items in einer einzigen Zeile erzwungen werden oder in mehrere Zeilen fließen können. Wenn sie auf mehrere Zeilen gesetzt wird, definiert sie auch die Querachse, die die Richtung bestimmt, in der neue Zeilen gestapelt werden, was das reaktionsfähige Layoutverhalten ohne CSS-Medienabfragen erleichtert.
.flex-container {
flex-wrap: wrap;
}
Erinnerung: Die Querachse ist die Achse, die senkrecht zur Hauptachse verläuft. Ihre Richtung hängt von der Richtung der Hauptachse ab.
Syntax
flex-wrap: nowrap | wrap | wrap-reverse
- Ursprünglicher Wert:
nowrap - Gilt für: Flex-Container
- Vererbt: nein
- Berechneter Wert: wie angegeben
- Animationstyp: diskret
Werte
flex-wrap: nowrap; /* Default value */
flex-wrap: wrap;
flex-wrap: wrap-reverse;
/* Global values */
flex-wrap: inherit;
flex-wrap: initial;
flex-wrap: revert;
flex-wrap: revert-layer;
flex-wrap: unset;
nowrap(Standard): Einzelne Zeile, die dazu führen kann, dass der Container überläuftwrap: Mehrere Zeilen, die Richtung wird durchflex-directionbestimmtwrap-reverse: Mehrere Zeilen, entgegengesetzt zur durchflex-directionbestimmten Richtung
Demo
In der folgenden Demo
- Die rote Liste ist auf
nowrapgesetzt - Die gelbe Liste ist auf
wrapgesetzt - Die blaue Liste ist auf
wrap-reversegesetzt
Die flex-direction ist auf den Standardwert gesetzt: row.
Browser-Unterstützung
Diese Browser-Support-Daten stammen von Caniuse, das mehr Details bietet. Eine Zahl zeigt an, dass der Browser die Funktion ab dieser Version und höher unterstützt.
Desktop
| Chrome | Firefox | IE | Edge | Safari |
|---|---|---|---|---|
| 21* | 28 | 11 | 12 | 6.1* |
Mobil / Tablet
| Android Chrome | Android Firefox | Android | iOS Safari |
|---|---|---|---|
| 127 | 127 | 4.4 | 7.0-7.1* |
Weitere Informationen darüber, wie Sie Synthesen kombinieren können, um die beste Browserunterstützung zu erzielen, finden Sie in unserem Artikel „Using Flexbox“.
Verwandte Anleitungen
Verwandte Tricks
Adaptives Foto-Layout mit Flexbox
Füllen des Platzes in der letzten Zeile mit Flexbox
Flexbox Nav Bar mit festen, variablen und dem Rest einnehmenden Elementen
Reaktionsfähige Layouts, weniger Medienabfragen
Nützliche Flexbox-Technik: Alignment Shifting Wrapping
Weitere Ressourcen
- CSS Flexible Box Module Level 1 (W3C)
flex-wrap(MDN)- Verbessern Sie die Reaktionsfähigkeit mit
flex-wrapin CSS (DigitalOcean)
Verwandt
display
.element { display: inline-block; }
align-content
.element { align-content: space-around; }
align-items
.element { align-items: flex-start; }
flex-direction
.element { flex-direction: column-reverse; }
flex-flow
.element { flex-flow: row wrap; }
flex-grow
.flex-item { flex-grow: 2; }
flex-shrink
.element { flex-shrink: 2; }
Danke!
Könnten Sie im Beispiel jedem .flex-container einen Rahmen geben, damit er für Neulinge wie mich leicht erkennbar ist? Allein durch das Anschauen dachte ich, der iFrame sei der Container.
Firefox unterstützt flex-wrap nicht: Siehe hier
Hat jemand eine Lösung/einen Workaround?
@supports not (flex-wrap: wrap) {
/Fallback/
}
Wir stellen die Unterstützung für Firefox wegen dieses Problems ein. Unglaublich, dass sie hinterherhinken, selbst hinter IE.
Auf Wiedersehen Firefox
Versuchen Sie, flex-flow zu verwenden
Seien Sie geduldig, Doug. Das wird in ein paar Versionen da sein.
Ihr Text zum Verlinken hier…
ok : ) Ich wünschte wirklich, ich hätte es jetzt, aber ich werde geduldig sein.
Hallo Chris
Ich benutze Firefox v27.0.1 und es unterstützt flex-warp nicht.
Warum unterstützt Firefox flex-warp nicht?
Sie haben immer noch Probleme mit
flex-wrap, Saeed. Keine Chance,flex-warpin naher Zukunft zu implementieren…Der neueste Firefox (28) unterstützt flex-wrap!
Ich habe kürzlich mit
flex-wrapexperimentiert und festgestellt, dass Safari es nicht unterstützt (auf Desktop oder Mobilgeräten), obwohl es das behauptet, d.h.Modernizr.flexwrapist true. Ich habe einen Fehlerbericht bei Modernizr eingereicht. Ich wollte das verbreiten, da es anscheinend einige Verwirrung um diese Eigenschaft gibt, da Firefox sie zuvor nicht unterstützt hatte.Ich habe übrigens denselben Kommentar hier hinterlassen.
Es ist Safari 6 (sicher auf iOS, vielleicht auch Desktop?), wo es beginnt,
flex-wrapzu unterstützen. Das ist schwierig, denn Safari 5 unterstützte Flex allgemein. Ich musste kürzlich eine UA-Prüfung durchführen und Dinge stattdessen fließen lassen, wenn Safari 5 erkannt wurde.Ich stoße auf Safari-Probleme, wenn ich
flex-wrapmitmin-widthkombiniere. Lustige Sache.Hallo,
Habe mich in letzter Zeit ein wenig mit Flexbox beschäftigt.
Immer noch nicht die gleiche Unterstützung für die flex-wrap-Eigenschaft auf Mobilgeräten wie auf dem Desktop.
Moderne Desktop-Browser springen schön über Flex-Breiten/-Höhen mit minimaler Breite und Höhe. Moderne mobile Browser scheinen jedoch explizitere Abmessungen zu benötigen, um das Umbrechen zu ermöglichen.
http://codepen.io/flurrd/pen/yygoGP
Würde mich wirklich über weitere Informationen dazu freuen.
Ich kann keine funktionierenden iPad-Beispiele finden oder viele Informationen, die diesen Unterschied erklären.
Beste Grüße
Ok, mein Fehler. Die Verwendung der Kurzschreibweise zur Angabe der min-width scheint meine Probleme mit dem Umbrechen auf Mobilgeräten zu lösen.
Also statt..
flex: 1;
min-width: 250px;
Sie sollten verwenden
flex: 1 0 250px;
Fühle mich jetzt besser :)
Ja, danke Marcus! Das hat mir geholfen, in Safari Desktop Version 8.0.5 zu beheben. Die Kurzschreibweisenlösung ist auch bei Webkit Bug 136041 vermerkt.
Danke. Das hat ein Safari Desktop-Problem gelöst, das ich hatte!
LEBENSRETTER, danke @Marcus! Das hat bei mir funktioniert
flex: 1 0 50%;Hat mein Problem auch behoben! Danke!!!
Das liegt daran, dass die Kurzschreibweise flex-basis und nicht min-width setzt.
@Marcus, du bist ein Star. Das hat meine Wrapping-Probleme auf ios8cordova WebView behoben.
@Marcus: Du bist genial!
Nachdem ich kurz davor war, mein neues responsives Layout (eine Arbeit von 6 Tagen) zu verwerfen, habe ich diesen Beitrag endlich gefunden.
Und tatsächlich hat die Kurzschreibweise das Problem behoben (nicht richtiges Wrapping von 3 Flex-Boxen). Nicht nur für Mobilgeräte, sondern auch auf dem Desktop (mit FF und IE).
Nochmals vielen Dank!
Lebe lang und in Frieden!
Möge die Macht mit dir sein!
@Steven Vachon
Ich habe festgestellt, dass ich explizit eine Breite angeben muss, nicht nur eine min-width, damit es auf Safari richtig funktioniert. Bin auf dasselbe Problem gestoßen.
Danke! Lebensrettender Tipp für Safari-Entwickler
Vielen Dank, Marcus. Ihre Lösung hat das Problem gelöst. Ich weiß es sehr zu schätzen.
Hatte jemand Probleme mit flex-wrap in Verbindung mit flex-grow/shrink in iOS 10? Ich benutze es in einer mobilen App mit PhoneGap und alle anderen Flex-Bereiche in der App funktionieren hervorragend.
Ich stoße auf Probleme mit einem Abschnitt, in dem ich Schaltflächen habe, die umbrechen und sich basierend auf dem Schaltflächentext vergrößern sollen. In Chrome funktionieren sie einwandfrei, aber auf dem tatsächlichen Gerät ragen sie aus dem Container heraus und verursachen seitliches Scrollen.
Das ist ziemlich genau der Code, den ich zu verwenden versuche… er sieht in Codepen großartig aus, aber nicht in meiner App :(
http://codepen.io/ktrammell95/pen/pEAdpq?editors=1100
Hallo. Ich bin mir nicht sicher, ob das hilft.
In letzter Zeit habe ich festgestellt, dass autoprefixer display -webkit-box hinzufügt.
Dies bricht flex-wrap in iOS 8 Chrome und Safari. Wenn man es entfernt, funktioniert es.
Hallo, ich hätte eine kleine Frage. Wäre es mit Flexbox möglich, auf eine neue Zeile umzubrechen, auch wenn genug Platz für alle Elemente in derselben Zeile vorhanden wäre? Was ich zu erreichen versuche, ist Folgendes
1. 3 Elemente mit einer Breite von 1/4 Seite
2. Nur 2 Elemente in der ersten Zeile mit space-around-Styling
3. Das dritte Element in einer separaten Zeile, als wäre es "umgebrochen", also nicht zentriert, linksbündig mit demselben Abstand wie das Element direkt darüber…
Ich erlebe sehr seltsames Verhalten mit flex-flow auf Desktop- vs. Mobilgeräten. Ich habe 23 Bilder, die ich in Zeilen von zwei anzeigen möchte, bis zur letzten Zeile, wo ein einzelnes zentriertes Bild angezeigt wird. Das funktioniert auf dem Desktop großartig, aber der Effekt ist bei mobilen Browsern umgekehrt. Auf Mobilgeräten ist das erste Bild das einzelne Bild. Warum verhält sich 'flex-flow: row wrap' in der Desktop-Umgebung völlig entgegengesetzt zur mobilen Umgebung?
Nur damit die Leute es wissen, Firefox wurde vor etwa sechs Jahren behoben und sollte jetzt zumindest alle wichtigen Teile von Flex unterstützen, wenn nicht sogar alles.
Danke für diesen Artikel. Ich habe einen Anwendungsfall für Flex-Flow: Column Wrap;
Wie mache ich daraus mehr als 2 Spaltenzeilen? Es erstellt Muster wie dieses
1 3 5 7
2 4 6 8
Ich möchte, dass es so geht
1 4 7
2 5 8
3 6
Wenn ein Umbruch stattfindet, beträgt der Abstand zwischen den Elementen auf der Querachse 0, sodass man Polsterung im Container oder Rand in den Elementen verwenden kann, um den Abstand anzupassen. Diese Tatsache habe ich nirgendwo dokumentiert gefunden.