columns CSS-Eigenschaft
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2017 browserübergreifend verfügbar.
Die columns CSS-Kurzschreibweise legt die maximale Anzahl von Spalten fest, die beim Zeichnen des Inhalts eines Elements verwendet werden sollen, zusammen mit der minimalen Breite und der maximalen Höhe der Spalten des Elements.
Probieren Sie es aus
columns: 2;
columns: 6rem auto;
columns: 12em;
columns: 3;
<section id="default-example">
<p id="example-element">
London. Michaelmas term lately over, and the Lord Chancellor sitting in
Lincoln's Inn Hall. Implacable November weather. As much mud in the streets
as if the waters had but newly retired from the face of the earth, and it
would not be wonderful to meet a Megalosaurus, forty feet long or so,
waddling like an elephantine lizard up Holborn Hill.
</p>
</section>
#example-element {
min-width: 21rem;
text-align: left;
}
Konsistente Eigenschaften
Diese Eigenschaft ist eine Kurzschreibweise für die folgenden CSS-Eigenschaften:
Syntax
/* Column width */
columns: 18em;
/* Column count */
columns: auto;
columns: 2;
/* Column width and count */
columns: 2 auto;
columns: auto 12em;
columns: auto auto;
/* Column width and/or count, and column height */
columns: 18em / 10em;
columns: 2 / 90vh;
columns: 2 auto / 300px;
/* Global values */
columns: inherit;
columns: initial;
columns: revert;
columns: revert-layer;
columns: unset;
Der Wert der columns-Eigenschaft kann als <column-count> und/oder als <column-width>-Wert angegeben werden, in beliebiger Reihenfolge, optional gefolgt von einem <column-height>-Wert, der durch einen Schrägstrich (/) vorangestellt ist.
Werte
<'column-width'>-
Die ideale Spaltenbreite, definiert als
<length>oder das Schlüsselwortauto. Die tatsächliche Breite kann breiter oder schmaler sein, um in den verfügbaren Raum zu passen. Siehecolumn-width. <'column-count'>-
Die ideale Anzahl von Spalten, in die der Inhalt des Elements aufgeteilt werden soll, definiert als
<integer>oder das Schlüsselwortauto. Wird dies als<integer>angegeben, wird die maximal zulässige Anzahl von Spalten festgelegt. Siehecolumn-count. <'column-height'>-
Die Höhe der Spalten, definiert als
<length>oder das Schlüsselwortauto. Siehecolumn-height.
Hinweis:
Das Setzen eines <column-height>-Wertes setzt die column-wrap-Eigenschaft auf ihren ursprünglichen Wert auto zurück. Wenn <column-height> auf einen <length> gesetzt ist, wird der auto-Wert von column-wrap zu wrap aufgelöst. Wenn <column-height> auf auto gesetzt ist, wird es zu nowrap aufgelöst.
Formale Definition
| Anfangswert | wie die jeweiligen Kurzschreibweisen:
|
|---|---|
| Anwendbar auf | Blockcontainer außer Tabellen umgebende Boxen |
| Vererbt | Nein |
| Berechneter Wert | wie die jeweiligen Kurzschreibweisen:
|
| Animationstyp | wie die jeweiligen Kurzschreibweisen:
|
Formale Syntax
columns =
[ <'column-width'> || <'column-count'> ] [ / <'column-height'> ]?
<column-width> =
auto |
<length [0,∞]> |
min-content |
max-content |
fit-content( <length-percentage> )
<column-count> =
auto |
<integer [1,∞]>
<column-height> =
auto |
<length [0,∞]>
<length-percentage> =
<length> |
<percentage>
<integer> =
<number-token>
Beispiele
>Drei gleiche Spalten einstellen
Dieses Beispiel zeigt, wie man einen Textcontainer in drei gleiche Spalten aufteilt.
HTML
Wir fügen ein grundlegendes <p>-Element mit Textinhalt ein.
<p class="content-box">
This is a bunch of text split into three columns using the CSS
<code>columns</code>
property. The text is equally distributed over the columns.
</p>
CSS
Wir setzen einen columns-Eigenschaftswert im Absatz, der einen <column-count>-Wert von 3 und einen <column-width>-Wert von auto enthält.
.content-box {
columns: 3 auto;
}
Ergebnis
Beachten Sie, wie der Text in drei Spalten aufgeteilt wird.
Erstellen von umbrechenden, fixen Höhen-Spalten
Dieses Beispiel zeigt, wie ein <column-height>-Wert mit der columns-Kurzschreibweise hinzugefügt wird, um einen Textcontainer in Spalten mit fester Höhe zu unterteilen, die auf neue Zeilen umschlagen, wenn die Inline-Kante des Containers erreicht ist.
HTML
Wir fügen ein grundlegendes <p>-Element mit etwas Text ein.
<p class="content-box">
This is a bunch of text split into three columns using the CSS
<code>columns</code> property. This includes a <code>column-count</code> value
of <code>3</code>, a <code>column-width</code> value of <code>auto</code>, and
a <code>column-height</code> value of <code>5em</code>. The
<code>column-wrap</code> value is set to its initial value, <code>auto</code>;
when a <code>column-height</code> value is included,
<code>column-wrap: auto</code> resolves to <code>wrap</code>, which allows the
columns to wrap onto multiple rows. The text is equally distributed over the
columns, and placed into multiple rows.
</p>
CSS
Wir setzen einen columns-Eigenschaftswert im Absatz, der einen <column-count>-Wert von 3, einen <column-width>-Wert von auto und einen <column-height>-Wert von 5em enthält. Da <column-height> auf einen <length> gesetzt ist, berechnet sich der column-wrap-Wert des Absatzes zu wrap, was es den Spalten ermöglicht, auf mehrere Zeilen umzubrechen.
.content-box {
columns: 3 auto / 5em;
}
Ergebnis
Beachten Sie, wie der Text in drei Spalten aufgeteilt wird. Jede Spalte ist 5em hoch. Nach jeder dritten Spalte schlagen die Spalten in Blockrichtung auf eine neue Zeile um.
Spezifikationen
| Spezifikation |
|---|
| CSS Multi-column Layout Module Level 2> # propdef-columns> |