CSS column-width-Eigenschaft
Die CSS-Eigenschaft column-width legt die Breite der Spalten fest. Hier finden Sie Beispiele zum Ausprobieren.
Die CSS-Eigenschaft column-width legt die ideale Breite jeder Spalte in einem Mehrspalten-Layout fest. Anstatt dem Browser mitzuteilen, wie viele Spalten erstellt werden sollen, geben Sie an, wie breit jede Spalte sein soll, und der Browser berechnet, wie viele Spalten in den verfügbaren Platz passen.
Dies ist der entgegengesetzte Ansatz zu column-count, wo Sie die Anzahl der Spalten festlegen und deren Breite variieren lassen. column-width macht Mehrspalten-Text standardmäßig responsiv: Wenn der Container breiter wird, erscheinen mehr Spalten; wenn er schmaler wird, fallen Spalten weg, bis nur noch eine einzige Spalte übrig bleibt.
Die Eigenschaft column-width ist eine der CSS3-Eigenschaften.
Wie column-width funktioniert
Der Wert ist am besten als gewünschte Mindestbreite zu verstehen, nicht als strenger Wert. Der Browser packt so viele Spalten mit (mindestens) dieser Breite hinein, wie hineinpassen, und dehnt sie dann aus, um den verbleibenden Platz zu füllen.
- Wenn der Container mehrere Spalten der angegebenen Breite aufnehmen kann, erhalten Sie mehrere Spalten.
- Wenn der Container schmaler als der angegebene Wert ist, erhalten Sie eine einzige Spalte, die so breit wie der Container ist — die Breite läuft nie aus dem Rahmen heraus.
- Wenn
column-countebenfalls gesetzt ist, wirdcolumn-widthzu einer maximalen Breite: Der Browser verwendet die Einschränkung, die zu weniger Spalten führt. Die Kurzform zum gleichzeitigen Setzen beider Werte istcolumns.
Eine grobe Methode, das Ergebnis vorherzusagen: Anzahl der Spalten ≈ floor(Containerbreite / (column-width + column-gap)). Der Standardwert für column-gap ist 1em.
Wann man es verwendet
Verwenden Sie column-width, wenn Sie lesbare Zeilenlängen wünschen, die sich an den viewport anpassen — zum Beispiel um einen langen Artikel oder eine Liste kurzer Elemente in zeitungsartige Spalten fließen zu lassen, ohne Media Queries zu schreiben. Da die Spaltenanzahl automatisch angepasst wird, funktioniert dieselbe Regel auf einem Smartphone (eine Spalte) und auf einem breiten Desktop (drei oder vier Spalten).
Moderne Browser unterstützen column-width ohne Vendor-Präfixe. Der Standardwert auto bedeutet, dass die Spaltenbreite durch andere Eigenschaften wie column-count bestimmt wird oder auf eine einzelne Spalte zurückfällt, wenn nichts anderes sie einschränkt.
| Anfangswert | auto |
|---|---|
| Gilt für | Block-Container außer Tabellen-Wrapper-Boxen. |
| Vererbung | Nein. |
| Animierbar | Ja. |
| Version | CSS3 |
| DOM-Syntax | object.style.columnWidth = "5px"; |
Syntax
Syntax der CSS-Eigenschaft column-width
column-width: auto | length | initial | inherit;Beispiel der column-width-Eigenschaft:
Beispiel der CSS-Eigenschaft column-width mit der length-Eigenschaft
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
div {
column-width: 80px;
}
</style>
</head>
<body>
<h1>Column-width property example</h1>
<p>Here the width of the column is set to 80px.</p>
<div>
Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
</div>
</body>
</html>Ergebnis

Beispiel der column-width-Eigenschaft mit dem Wert "auto":
Mit auto legt der Browser keine Zielbreite fest. In Kombination mit column-count lässt es die count-Regel das Layout bestimmen; allein fällt es auf eine einzelne Spalte zurück.
<!DOCTYPE html>
<html>
<head>
<title>Title of the document</title>
<style>
div {
column-width: auto;
}
</style>
</head>
<body>
<h1>Column-width property example</h1>
<p>Here the width of the column is set to auto.</p>
<div>
Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.
</div>
</body>
</html>Responsive Spalten ohne Media Queries
Da der Browser die Spaltenanzahl aus der verfügbaren Breite ableitet, erzeugt eine einzige column-width-Regel ein Layout, das sich von selbst neu anordnet. Hier fügen wir zusätzlich column-gap und eine column-rule zur Trennung hinzu. Vergrößern oder verkleinern Sie die Vorschau, um zu beobachten, wie Spalten erscheinen und verschwinden.
<!DOCTYPE html>
<html>
<head>
<title>Responsive columns</title>
<style>
.news {
column-width: 14em;
column-gap: 2em;
column-rule: 1px solid #ccc;
}
</style>
</head>
<body>
<div class="news">
Lorem Ipsum is dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged.
</div>
</body>
</html>Häufige Fallstricke
- Es ist ein Ziel, keine Garantie. Die tatsächlich gerenderte Spaltenbreite entspricht selten genau dem gesetzten Wert — der Browser dehnt Spalten aus, um die Zeile zu füllen. Verwenden Sie es, um grob zu steuern, wie viele Spalten erscheinen, nicht deren pixelgenaue Breite.
column-widthundcolumn-countinteragieren. Wenn beide vorhanden sind, behandelt der Browsercolumn-widthals Maximum und überschreitetcolumn-countnie. Setzen Sie nur einen der beiden Werte, es sei denn, Sie möchten absichtlich eine Begrenzung auf beiden Achsen.- Hohe Inhalte können Spalten ungleichmäßig umbrechen. Verwenden Sie
column-fill, um zu steuern, wie Inhalte über die Spalten verteilt werden. - Prozentwerte sind nicht erlaubt. Anders als bei vielen width-Eigenschaften akzeptiert
column-widthnur eine Längenangabe (px,em,ch, …) oderauto— kein%.
Werte
| Wert | Beschreibung | Ausprobieren |
|---|---|---|
| auto | Die Breite der Spalte wird vom Browser bestimmt. Dies ist der Standardwert. | |
| length | Die Breite der Spalten wird durch einen Längenwert angegeben. | |
| initial | Setzt die Eigenschaft auf ihren Standardwert zurück. | |
| inherit | Erbt die Eigenschaft vom übergeordneten Element. |
Verwandte Eigenschaften
column-count— legt die Anzahl der Spalten statt ihrer Breite fest.columns— Kurzform fürcolumn-widthundcolumn-count.column-gap— Abstand zwischen den Spalten.column-rule— eine Linie, die zwischen den Spalten gezeichnet wird.column-span— lässt ein Element über alle Spalten hinweg erstrecken.