column-wrap CSS property
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 legt das Umbruchverhalten von überlaufenden Spalten in einem CSS-Multi-Column-Layout fest.
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
Diese Eigenschaft wird als einer der folgenden Schlüsselwortwerte angegeben:
auto-
Der anfängliche Wert. Wenn der Inhaltscontainer eine
column-heighthat, die auf ein<length>gesetzt ist, löst sichautoinwrapauf, andernfalls innowrap. nowrap-
Spalten laufen in der Inline-Richtung über.
wrap-
Überlaufende Spalten werden in einer neuen Zeile in Blockrichtung platziert.
Beschreibung
Die column-wrap-Eigenschaft kann verwendet werden, um die Spalten eines CSS-Multi-Column-Layouts so zu setzen, dass sie in eine neue Zeile umgebrochen werden, wenn sie beginnen, die Spaltenbreite zu überschreiten. Dies ist nützlich, um lesbarere Layouts zu erstellen, wenn die column-count oder column-width Eigenschaft verwendet wird, um mehrere Spalten festzulegen.
Ohne column-wrap werden überschüssige Spalten seitlich überlaufen, und Leser müssen in der Inline-Richtung scrollen, um den gesamten Inhalt zu lesen. Die column-height-Eigenschaft zusammen mit column-wrap ermöglicht es Ihnen, eine spezifische Höhe für die Spalten festzulegen und sie in eine neue Spaltenzeile umzubrechen, wenn die Containerbegrenzung erreicht wird.
Der Standardwert von column-wrap ist auto, der sich in wrap auflöst, wenn column-height auf einen <length>-Wert gesetzt ist; wrap ermöglicht es, dass die Spalten mit fester Höhe auf mehrere Zeilen umgebrochen werden. Wenn column-height gleich auto ist, löst sich column-wrap: auto in nowrap auf, wodurch die Spalten horizontal überlaufen können, wenn eine feste Containerhöhe festgelegt ist.
Aufgrund dieses Standardverhaltens müssen Sie die column-wrap-Eigenschaft in der Regel 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 ein umbrochenes Multi-Col-Layout durch Festlegung einer column-height-Eigenschaft zu erstellen.
HTML
Wir fügen ein Gedicht von Dr. Seuss ein, das eine <ol> mit 28 <li>s enthält, 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 die <ol> als einen Multi-Column-Container, indem wir die column-width-Eigenschaft auf 150px setzen, was bedeutet, dass der Container so viele Spalten wie möglich enthält, wobei jede mindestens 150px breit ist. Die gap-Eigenschaft setzt einen horizontalen Abstand zwischen den Spalten und einen vertikalen Abstand zwischen den Spaltenzeilen. Wir setzen dann die column-height auf 3em, wodurch der Standardwert auto der column-wrap-Eigenschaft in wrap aufgelöst wird, um umgebrochene Zeilen von Spalten zu erstellen.
ol {
column-width: 150px;
gap: 2em;
column-height: 3em;
}
Ergebnis
Vergleich von wrap und nowrap
Dieses Beispiel zeigt ein Multi-Column-Layout, das den Unterschied zwischen den Werten wrap und nowrap demonstriert, indem es Ihnen ermöglicht, den Wert der column-wrap-Eigenschaft des Spaltencontainers zwischen diesen beiden umzuschalten. 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-Startseiten für HTML, CSS und JavaScript stammen, und ein durch JavaScript betriebenes <input type="checkbox">-Element, um den Wert der column-wrap-Eigenschaft des Containers zwischen nowrap und wrap umzuschalten. Der HTML- und JavaScript-Code wurde der Kürze halber ausgeblendet.
CSS
Wir machen das <body>-Element zu einem Multi-Col-Container, indem wir die column-count auf 3 setzen. Wir setzen dann einen gap von 3em 2em, was einen 3em-Abstand zwischen den Zeilen und einen 2em-Abstand zwischen den Spalten ergibt.
Wir setzen dann eine column-height von 90vh, wodurch die Spalten fast so hoch wie der Ansichtsbereich sind. Wir setzen auch column-wrap auf nowrap, wodurch überflüssige Inhaltsfelder horizontal überfließen. Das ist erforderlich, weil der anfängliche Wert von column-wrap auto ist, der sich in wrap auflöst, wenn column-height auf einen <length>-Wert gesetzt ist.
Die Checkbox schaltet die column-wrap-Eigenschaft zwischen nowrap und wrap um. Wenn auf wrap gesetzt, überlaufen die überflüssigen Inhaltsfelder vertikal in neue Zeilen von Spalten und erzeugen das vertikale Layout. Der column-height-Wert verursacht, dass jede Zeile von Spalten den Ansichtsbereich füllt.
body {
column-count: 3;
gap: 3em 2em;
padding: 0 2em;
column-height: 90vh;
column-wrap: nowrap;
}
Als nächstes setzen wir die column-span-Eigenschaft des <h1>-Elements auf all, um die Überschrift über alle Spalten zu spannen, und setzen die margin-top-Eigenschaft des ersten <p> auf 0, damit es mit der Oberseite der Spalten ausgerichtet ist.
h1 {
column-span: all;
}
p:first-of-type {
margin-top: 0;
}
Ergebnis
Schalten Sie die Checkbox um, um den Wert der column-wrap-Eigenschaft zu ändern und zwischen horizontalem und vertikalem Scrollen zu wechseln. Wenn column-wrap auf nowrap gesetzt ist, überlaufen die Spalten horizontal; wenn column-wrap auf wrap gesetzt ist, werden neue Spaltenzeilen vertikal hinzugefügt.
Spezifikationen
| Spezifikation |
|---|
| CSS Multi-column Layout Module Level 2> # propdef-column-wrap> |
Browser-Kompatibilität
Siehe auch
column-countcolumn-widthcolumnsKurzformcolumn-height- CSS-Multi-Column-Layout Modul