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 CSS property

Experimentell: Dies ist eine experimentelle Technologie
Überprüfen Sie die Browser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.

Die CSS-Eigenschaft column-wrap legt das Umbruchverhalten von überlaufenden Spalten in einem CSS-Mehrspaltenlayout fest.

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

Diese Eigenschaft wird als einer der folgenden Schlüsselwortwerte angegeben:

auto

Der Anfangswert. Wenn die column-height des Inhaltscontainers auf einen <length> gesetzt ist, wird auto zu wrap aufgelöst, andernfalls zu nowrap.

nowrap

Spalten laufen in Inline-Richtung über.

wrap

Überlaufende Spalten werden in Blockrichtung in einer neuen Zeile platziert.

Beschreibung

Die Eigenschaft column-wrap kann verwendet werden, um die Spalten eines CSS-Mehrspaltenlayouts in eine neue Zeile umbrechen zu lassen, wenn sie beginnen, über die Spaltenbreite hinauszulaufen. Dies ist nützlich, um besser lesbare Layouts zu erstellen, wenn die Eigenschaft column-count oder column-width verwendet wird, um mehrere Spalten festzulegen.

Ohne column-wrap laufen überschüssige Spalten seitlich über, und Leser müssen in Inline-Richtung scrollen, um den gesamten Inhalt zu lesen. Die Eigenschaft column-height ermöglicht es Ihnen zusammen mit column-wrap, eine bestimmte Höhe für die Spalten festzulegen und sie in eine neue Spaltenzeile umbrechen zu lassen, wenn der Rand des Containers erreicht wird.

Der Standardwert von column-wrap ist auto, was zu wrap aufgelöst wird, wenn column-height auf einen <length>-Wert gesetzt ist; wrap ermöglicht es den Spalten mit fester Höhe, auf mehrere Zeilen umzubrechen. Wenn column-height gleich auto ist, wird column-wrap: auto zu nowrap aufgelöst, wodurch die Spalten horizontal überlaufen können, wenn eine feste Containerhöhe festgelegt ist.

Aufgrund dieses Standardverhaltens müssen Sie die Eigenschaft column-wrap 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 Eigenschaft column-wrap, um durch Festlegen einer Eigenschaft column-height ein umbrochenes Mehrspaltenlayout zu erstellen.

HTML

Wir fügen ein Gedicht von Dr. Seuss ein, indem wir ein <ol> mit 28 <li>s 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 Mehrspaltencontainer, indem wir die Eigenschaft column-width auf 150px setzen. Das bedeutet, dass der Container so viele Spalten wie möglich enthält, wobei jede mindestens 150px breit ist. Die Eigenschaft gap legt einen horizontalen Abstand zwischen Spalten und einen vertikalen Abstand zwischen Spaltenzeilen fest. Anschließend setzen wir column-height auf 3em, wodurch der Standardwert auto der Eigenschaft column-wrap zu wrap aufgelöst wird, um umbrochene Spaltenzeilen zu erstellen.

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 Werten wrap und nowrap 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 Inhaltsabsätze, die den HTML-, CSS- und JavaScript-Startseiten von MDN entnommen wurden, sowie ein JavaScript-gesteuertes Element <input type="checkbox">, um den Wert der Eigenschaft column-wrap des Containers zwischen nowrap und wrap umzuschalten. HTML und JavaScript wurden der Kürze halber ausgeblendet.

CSS

Wir machen das Element <body> zu einem Mehrspaltencontainer, indem wir column-count auf 3 setzen. Anschließend setzen wir gap auf 3em 2em, was zu einem Abstand von 3em zwischen Zeilen und 2em zwischen Spalten führt.

Dann setzen wir column-height auf 90vh, wodurch die Spalten nahezu so hoch wie der Viewport werden. Außerdem setzen wir column-wrap auf nowrap, wodurch überschüssige Inhaltsspalten horizontal überlaufen. Dies ist erforderlich, da der Anfangswert von column-wrap auto ist, was zu wrap aufgelöst wird, wenn column-height auf einen <length>-Wert gesetzt ist.

Das Kontrollkästchen schaltet die Eigenschaft column-wrap zwischen nowrap und wrap um. Wenn sie auf wrap gesetzt ist, laufen überschüssige Inhaltsspalten vertikal in neue Spaltenzeilen über und erzeugen das vertikale Layout. Der Wert von column-height bewirkt, dass jede Spaltenzeile den Viewport ausfüllt.

css
body {
  column-count: 3;
  gap: 3em 2em;
  padding: 0 2em;
  column-height: 90vh;
  column-wrap: nowrap;
}

Als Nächstes setzen wir die Eigenschaft column-span des Elements <h1> auf all, damit die Überschrift alle Spalten überspannt, und setzen die Eigenschaft margin-top des ersten <p> auf 0, sodass sie mit dem oberen Rand der Spalten ausgerichtet ist.

css
h1 {
  column-span: all;
}

p:first-of-type {
  margin-top: 0;
}

Ergebnis

Schalten Sie das Kontrollkästchen um, um den Wert der Eigenschaft column-wrap zu ändern und das Layout zwischen horizontalem und vertikalem Scrollen zu wechseln. Wenn column-wrap auf nowrap gesetzt ist, laufen die Spalten horizontal über; wenn column-wrap auf wrap gesetzt ist, werden vertikal neue Spaltenzeilen hinzugefügt.

Spezifikationen

Spezifikation
CSS Multi-column Layout Module Level 2
# propdef-column-wrap

Browser-Kompatibilität

Siehe auch