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 column-wrap CSS-Eigenschaft legt das Umbruchverhalten von überlaufenden Spalten in einem CSS-Multi-Column-Layout 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 anfängliche Wert. Wenn der Inhaltscontainer eine column-height hat, die auf ein <length> gesetzt ist, löst sich auto in wrap auf, andernfalls in nowrap.

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

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

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

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

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

css
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