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

View in English Always switch to English

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

css
/* 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-height auf eine <length> gesetzt ist, löst sich auto zu wrap auf, ansonsten löst es sich zu nowrap auf.

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

Anfangswertauto
Anwendbar aufmehrspaltige Elemente
VererbtNein
Berechneter Wertwie angegeben
Animationstypdiskret

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>.

html
<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.

css
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.

css
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.

css
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