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

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

Die column-height CSS Eigenschaft gibt die Höhe der Spalten in einem CSS Mehrspalten-Layout an.

Die columns Kurzschreibweise kann verwendet werden, um die Werte der Eigenschaften column-height, column-count und column-width in einer einzigen Deklaration festzulegen.

Syntax

css
/* Keyword */
column-height: auto;

/* <length> value */
column-height: 300px;
column-height: 25em;
column-height: 70vh;

/* Global values */
column-height: inherit;
column-height: initial;
column-height: revert;
column-height: revert-layer;
column-height: unset;

Werte

auto

Der Initialwert. Wenn der Inhaltcontainer eine festgelegte Höhe hat, wachsen die Inhaltspalten bis zu dieser Höhe und überlaufen zur Seite, wenn der Inhalt nicht in den Container passt. Wenn der Inhaltcontainer keine festgelegte Höhe hat, wird der Inhalt gleichmäßig auf die im Container erzeugten Spalten verteilt.

<length>

Die Höhe der Spalten. Muss nicht negativ sein.

Beschreibung

Die column-height Eigenschaft legt die Höhe der Spalten in einem Mehrspalten-Layout fest. Dies ist nützlich, um die Spaltenhöhe zur besseren Lesbarkeit zu begrenzen, wenn mehrere Spalten mit der Eigenschaft column-count oder column-width eingestellt werden.

Ohne column-height, wenn die Höhe des mehrspaltigen Inhalts die Höhe des Ansichtsfensters überschreitet, müssen Leser bis zum Ende einer Spalte scrollen und dann wieder nach oben zur nächsten Spalte. Eine mögliche Lösung wäre, eine feste Höhe auf dem Inhaltcontainer festzulegen, dann würden jedoch überflüssige Spalten zur Seite überlaufen und Leser müssen in die 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 diese auf eine neue Reihe von Spalten zu umwickeln, wenn der Rand des Containers erreicht wird.

Der Standardwert von column-wrap ist auto, was sich zu wrap auflöst, wenn column-height auf einen <length> Wert gesetzt ist; wrap ermöglicht es den Spalten mit fester Höhe, auf mehrere Reihen umgebrochen zu werden. Wenn column-height gleich auto ist, löst sich column-wrap: auto zu nowrap auf, 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 aufBlockcontainer außer Tabellen umgebende Boxen
VererbtNein
Berechneter Wertauto if specified as auto, otherwise for <length> the absolute value specified
Animationstypby computed value type

Formale Syntax

column-height = 
auto |
<length [0,∞]>

Beispiele

Grundlegende Verwendung

Dieses Beispiel zeigt die grundlegende Verwendung der column-height Eigenschaft, um ein umgebrochenes Mehrspalten-Layout zu erstellen.

HTML

Wir fügen ein Gedicht von Dr. Seuss ein, indem wir eine <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 Mehrspalten-Container, indem wir die Eigenschaft column-width auf 150px setzen, was bedeutet, dass der Container so viele Spalten wie möglich enthalten wird, wobei jede mindestens 150px breit ist. Die Eigenschaft gap mit 2em setzt einen horizontalen Abstand zwischen Spalten und einen vertikalen Abstand zwischen Reihen von Spalten. Wir setzen dann die column-height auf 2em, wodurch sich der Standardwert auto der column-wrap Eigenschaft zu wrap auflöst, um umgebrochene Spaltenreihen zu erstellen.

css
ol {
  column-width: 150px;
  gap: 2em;
  column-height: 3em;
}

Ergebnis

Scroll-geschnappte Spalten

Dieses Beispiel kombiniert ein umgebrochenes Mehrspalten-Layout mit CSS-Scroll-Snapping, wodurch eine benutzerfreundliche Erfahrung entsteht, bei der jede Scrollaktion eine neue Reihe von Spalten sauber in der vollen Höhe des Ansichtsfensters schnappt, um ein angenehmes Lesen zu ermöglichen.

HTML

Das HTML, das mehrere Absätze mit Inhalten von den MDN HTML-, CSS- und JavaScript-Startseiten enthält, wurde zur Kürze versteckt.

CSS

Wir beginnen damit, auf das <body> Element die Eigenschaft column-width zu setzen, um die bevorzugte Breite für die Spalten zu definieren. Ein gap von 3em 2em ergibt einen 3em Abstand zwischen Reihen und einen 2em Abstand zwischen Spalten. Die Eigenschaft column-rule fügt eine Linie in der Mitte des Abstands zwischen den Spalten hinzu. Die column-height von 95vh macht die Spalten fast so hoch wie das Ansichtsfenster.

Wir setzen column-wrap ausdrücklich auf wrap als Erinnerung an das angewandte Umbruchverhalten. Wir hätten die Eigenschaft auf auto setzen oder ganz weglassen können, da sich column-wrap standardmäßig zu wrap auflöst, wenn column-height auf einen <length> Wert gesetzt ist.

css
body {
  column-width: 150px;
  column-rule: 2px solid red;
  gap: 3em 2em;
  padding: 0 2em;
  column-height: 95vh;
  column-wrap: wrap;
}

Als nächstes setzen wir die Eigenschaft column-span des <h1> Elements auf all, damit die Überschrift sich über alle Spalten erstreckt, und setzen die Eigenschaft margin-top des ersten <p> auf 0, sodass es mit dem oberen Rand der Spalten bündig ist.

css
h1 {
  column-span: all;
}

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

Schließlich fügen wir Scroll-Snapping hinzu, indem wir auf das <html> Element die Eigenschaft scroll-snap-type auf y mandatory setzen und scroll-snap-align auf start auf den ::column Pseudo-Elementen, die jede generierte Spalte darstellen. Dies bewirkt, dass der Inhalt jedes Mal, wenn gescrollt wird, zum oberen Rand einer neuen Spalte schnappt.

css
html {
  scroll-snap-type: y mandatory;
}

::column {
  scroll-snap-align: start;
}

Ergebnis

Versuchen Sie, den Inhalt zu scrollen. Beachten Sie, wie jede neue Reihe von Spalten das Ansichtsfenster füllt und wie der Inhalt bei jedem Scrollen sauber zum oberen Rand einer neuen Reihe schnappt.

column-height und column-count Spielplatz

Dieses Beispiel baut auf dem vorherigen auf, indem zwei Bereichsschieberegler hinzugefügt werden, die es Ihnen ermöglichen, die Spaltenanzahl und die Spaltenhöhe des Mehrspalten-Layouts anzupassen.

HTML und JavaScript

Das HTML ist dasselbe wie im vorherigen Beispiel, mit der Hinzufügung eines Formulars mit zwei <input="range"> Elementen, die die column-count und column-height Werte über JavaScript aktualisieren. Das HTML und JavaScript sind zur Kürze versteckt.

CSS

Wir geben die Werte für column-rule und gap mit denselben Werten wie im vorherigen Beispiel an. Wir geben keine column-width an; stattdessen erstellen wir ein Mehrspalten-Layout mit der Eigenschaft column-count, und setzen die Anzahl der Spalten und die Höhe der Spaltenreihen interaktiv mit JavaScript fest. Scroll-Snapping ist in diesem Beispiel nicht enthalten.

css
body {
  column-count: 3;
  column-height: 20em;
  column-rule: 2px solid red;
  gap: 3em 2em;
  padding: 0 2em;
}

Ergebnis

Passen Sie die Anzahl der Spalten und die Spaltenhöhe an, um den Effekt dieser Eigenschaften zu sehen.

Spezifikationen

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

Browser-Kompatibilität

Siehe auch