css: Wie kann ich bei Mehrspaltigkeit eine feste Spaltenbreite einstellen?

1 Antwort

Vom Beitragsersteller als hilfreich ausgezeichnet

Das column-width-Property wird auch von Firefox unterstützt. Es wirkt aber beispielsweise nicht bei Inline-Elementen oder auch bei zu hohen Werten wirst du keine visuelle Änderung sehen. Grundsätzlich ist das Property für deinen Fall nicht geeignet, denn der Textfluss verläuft bei columns vertikal, statt horizontal.

Die einfachste Lösung wäre meines Erachtens das eigene Setzen von Tabs. Damit die in deinem Textcontainer vom Browser berücksichtigt werden, kannst du das white-space-Property entsprechend setzen.

Beispiel:

<!doctype html>
<head>
  <title>Example</title>
  <style>
   .text { white-space: pre }
  </style>
</head>
<body>
  <p class="text">Some&#9;text</p>
</body>

In meinem Beispiel habe ich das Tabzeichen mit dem Entity &#9; gesetzt. Du kannst Tabs aber auch ganz normal mit der Tab-Taste setzen (hier im Gutefrage-Editor wird das leider nicht unterstützt).

Via CSS kannst du sogar die Tabgröße mit dem tab-size-Property nachträglich ändern.


Holzbiene2024 
Beitragsersteller
 08.04.2025, 10:32
tab-size-Property

Extra-danke. Nach sowas suche ich seit Jahren. Das i-Tüpfelchen wäre, wenn es auch mehrere tab-positions gäbe, denn die Spalten können unterschiedlich breit sein.

Jedes Textprogramm unterstützt diese Funktion.

regex9  08.04.2025, 11:26
@Holzbiene2024

Wenn du nicht mehrere Tabs nacheinander setzen möchtest, müsstest du die Texte in einzelne Container stopfen. Dann könntest du die Spaltenbreite über ein Grid regeln.

HTML:

<p class="text-container">
  <span>Lorem ipsum</span>
  <span>dolor sit</span>
  <span>amet</span>
</p>

CSS:

.text-container {
  display: grid;
  grid-template-columns: 150px 200px 50px;
}

In diesem Fall gibt es drei Spalten. Die erste Spalte ist 150px, die Zweite ist 200px und die letzte 50px breit.

Holzbiene2024 
Beitragsersteller
 07.04.2025, 17:50
.text { white-space: pre }

Danke, das ist die Lösung.