column-wrap
Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
Die column-wrap CSS Eigenschaft bestimmt das Umbruchverhalten von überlaufenden Spalten in einem CSS-Mehrspalten-Layout.
Syntax
/* Keywords */
column-wrap: auto;
column-wrap: nowrap;
column-wrap: wrap;
/* Global values */
column-wrap: inherit;
column-wrap: initial;
column-wrap: revert;
column-wrap: revert-layer;
column-wrap: unset;
Werte
auto-
Der initiale Wert. Wenn der Inhalt der
column-heightauf eine<length>gesetzt ist, löst sichautozuwrapauf, ansonsten löst es sich zunowrapauf. nowrap-
Spalten überlaufen in die inline-Richtung.
wrap-
Überlaufende Spalten werden in einer neuen Reihe in Blockrichtung platziert.
Beschreibung
Die column-wrap Eigenschaft kann verwendet werden, um in einem CSS-Mehrspalten-Layout Spalten so einzustellen, dass sie in eine neue Reihe umgebrochen werden, wenn sie beginnen, die Spaltenbreite zu überlaufen. Dies ist nützlich, um leserfreundlichere Layouts zu erstellen, wenn die column-count oder column-width Eigenschaft verwendet wird, um mehrere Spalten zu setzen.
Ohne column-wrap würden überzählige Spalten seitlich überlaufen, und Leser müssten in der Inline-Richtung scrollen, um den gesamten Inhalt zu lesen. Die column-height Eigenschaft zusammen mit column-wrap ermöglicht es, eine spezifische Höhe für die Spalten festzulegen und sie in eine neue Spaltenreihe umzubrechen, wenn der Rand des Containers erreicht wird.
Der Standardwert von column-wrap ist auto, welcher zu wrap wird, wenn column-height auf einen <length> Wert gesetzt ist; wrap erlaubt es, dass die Spalten mit fester Höhe auf mehrere Reihen umgebrochen werden. Wenn column-height gleich auto ist, löst sich column-wrap: auto zu nowrap auf, wodurch die Spalten horizontal auslaufen können, wenn eine feste Containerhöhe festgelegt ist.
Aufgrund dieses Standardverhaltens müssen Sie die column-wrap Eigenschaft im Allgemeinen nicht explizit festlegen.
Formale Definition
| Anfangswert | auto |
|---|---|
| Anwendbar auf | mehrspaltige Elemente |
| Vererbt | Nein |
| Berechneter Wert | wie angegeben |
| Animationstyp | diskret |
Formale Syntax
column-wrap =
auto |
nowrap |
wrap
Beispiele
>Grundlegende Verwendung
Dieses Beispiel demonstriert die grundlegende Verwendung der column-wrap Eigenschaft, um durch das Setzen einer column-height Eigenschaft ein umgebrochenes Mehrspaltenlayout zu erstellen.
HTML
Wir fügen ein Gedicht von Dr. Seuss ein, indem wir ein <ol> mit 28 <li>-Elementen verwenden, gefolgt vom Namen des Autors in einem <p>.
<ol>
<li>One fish</li>
<li>Two fish</li>
<li>Red fish</li>
<li>Blue fish</li>
...
</ol>
<p>-- Dr. Seuss</p>
CSS
Wir definieren das <ol> als Mehrspalten-Container, indem wir die column-width Eigenschaft auf 150px setzen, was bedeutet, dass der Container so viele Spalten wie möglich mit jeweils mindestens 150px Breite enthalten wird. Die gap Eigenschaft setzt einen horizontalen Abstand zwischen den Spalten und einen vertikalen Abstand zwischen den Reihen der Spalten. Dann setzen wir die column-height auf 3em, wodurch der Standardwert auto von column-wrap zu wrap wird, um umgebrochene Spaltenreihen zu erzeugen.
ol {
column-width: 150px;
gap: 2em;
column-height: 3em;
}
Ergebnis
Vergleich von wrap und nowrap
Dieses Beispiel zeigt ein Mehrspaltenlayout, das den Unterschied zwischen den wrap und nowrap Werten demonstriert, indem Sie den column-wrap-Wert des Spaltencontainers zwischen den beiden umschalten können. Das Ergebnis ist ein Layout, das dynamisch zwischen horizontalem und vertikalem Scrollen wechselt.
HTML und JavaScript
Das Markup für dieses Beispiel enthält mehrere Absätze von Inhalten, die von den MDN HTML, CSS und JavaScript Startseiten entnommen wurden, sowie ein JavaScript-gestütztes <input type="checkbox"> Element, um den column-wrap Eigenschaftswert des Containers zwischen nowrap und wrap umzuschalten. HTML und JavaScript wurden aus Gründen der Kürze versteckt.
CSS
Wir machen das <body> Element zu einem Mehrspalten-Container, indem wir die column-count auf 3 setzen. Dann setzen wir einen gap von 3em 2em, was zu einem Abstand von 3em zwischen den Reihen und 2em zwischen den Spalten führt.
Dann setzen wir eine column-height von 90vh, um die Spalten fast so hoch wie den Ansichtsbereich zu machen. Wir setzen auch column-wrap auf nowrap, was bedeutet, dass überflüssige Content-Spalten horizontal überlaufen. Dies ist erforderlich, da der anfängliche column-wrap Wert auto ist, der sich zu wrap auflöst, wenn column-height auf einen <length> Wert gesetzt wird.
Das Kontrollkästchen schaltet die column-wrap Eigenschaft zwischen nowrap und wrap um. Wenn auf wrap eingestellt, überfließen die überzähligen Content-Spalten vertikal in neue Spaltenreihen, wodurch das vertikale Layout entsteht. Der column-height Wert bewirkt, dass jede Spaltenreihe den Ansichtsbereich ausfüllt.
body {
column-count: 3;
gap: 3em 2em;
padding: 0 2em;
column-height: 90vh;
column-wrap: nowrap;
}
Anschließend setzen wir die column-span Eigenschaft des <h1> Elements auf all, um die Überschrift über alle Spalten zu erstrecken, und setzen die margin-top Eigenschaft des ersten <p> auf 0, damit es mit dem oberen Rand der Spalten übereinstimmt.
h1 {
column-span: all;
}
p:first-of-type {
margin-top: 0;
}
Ergebnis
Schalten Sie das Kontrollkästchen um, um den Wert der column-wrap Eigenschaft zu ändern und zwischen horizontalem und vertikalem Scrollen umzuschalten. Wenn column-wrap auf nowrap gesetzt ist, überlaufen die Spalten horizontal; wenn column-wrap auf wrap gesetzt ist, werden neue Reihen von Spalten vertikal hinzugefügt.
Spezifikationen
| Spezifikation |
|---|
| CSS Multi-column Layout Module Level 2> # propdef-column-wrap> |
Browser-Kompatibilität
Siehe auch
column-countcolumn-widthcolumnsshorthandcolumn-height- CSS-Mehrspalten-Layout Modul