Text-Umbruch
CSS bietet verschiedene Möglichkeiten, Text auf mehrere Zeilen zu verteilen und den Umgang mit Leerzeichen und Zeilenumbrüchen zu steuern.
text-wrapsteuert, wie Text auf mehrere Zeilen verteilt wirdwhite-spacesteuert, wie Leerzeichen und Zeilenumbrüche behandelt werden
text-wrap
text-wrap steuert, ob und wie der Browser Text auf mehrere Zeilen verteilt.
wrapText wird normal umgebrochen (Standard)nowrapVerhindert Zeilenumbrüche, ohne den Umgang mit Leerzeichen zu verändern. Siehe auchwhite-space.balanceVerteilt kurze Texte möglichst gleichmässig auf mehrere ZeilenprettyOptimiert den Umbruch längerer Texte zugunsten eines schöneren SatzbildsstableHält beim Bearbeiten bereits gesetzte Zeilen möglichst stabil
Ausgewogene Überschriften
balance eignet sich besonders für kurze, mehrzeilige Überschriften.
Dynamische Typografie braucht ausgewogene Zeilen.
h1 {
text-wrap: balance;
}
Nicht für lange Fliesstexte: text-wrap: balance ist für kurze
Textblöcke wie Überschriften gedacht. Browser wenden die Berechnung nur auf eine begrenzte
Anzahl Zeilen an. Für längere Absätze eignet sich text-wrap: pretty.
white-space
white-space kontrolliert, wie Leerzeichen und Zeilenumbrüche behandelt werden.
normalMehrfach-Leerzeichen werden zusammengefasst, automatischer UmbruchnowrapVerhindert Zeilenumbrüche und fasst mehrere Leerzeichen zusammen. Siehe auchtext-wrap.preLeerzeichen/Umbrüche bleiben erhalten, kein automatischer Umbruchpre-wrapLeerzeichen/Umbrüche bleiben erhalten, mit automatischem Umbruchpre-lineUmbrüche bleiben erhalten, Mehrfach-Leerzeichen werden zusammengefasst, mit automatischem Umbruch
Beispiele
white-space und ellipsis
white-space: nowrap verhindert den Zeilenumbruch. In Kombination mit
text-overflow: ellipsis wird abgeschnittener Text mit drei Punkten gekennzeichnet.
Mehr dazu unter Text Overflow.
Dieser sehr lange Text wird nicht umgebrochen und zeigt stattdessen drei Punkte am Ende
.no-wrap {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Leerzeichen und Zeilenumbrüche erhalten
white-space: pre übernimmt Leerzeichen und Zeilenumbrüche aus dem HTML. Lange Zeilen
werden nicht automatisch umgebrochen.
white-space: pre
Dieser Text behält alle Leerzeichen und Zeilenumbrüche!
.white-space-pre {
white-space: pre;
}
Eingegebene Texte mit Zeilenumbrüchen
white-space: pre-wrap eignet sich für Kommentare oder Chatnachrichten. Leerzeichen
und eingegebene Zeilenumbrüche bleiben erhalten, lange Zeilen werden innerhalb der Box
automatisch umgebrochen.
Hallo zusammen Diese Nachricht enthält einen eingegebenen Zeilenumbruch und zusätzlich eine sehr lange Textzeile, die innerhalb der schmalen Box automatisch auf mehrere Zeilen umgebrochen wird.
.message {
white-space: pre-wrap;
}
ASCII-Art mit white-space: pre
Zum Abschluss ein kleines Beispiel, wie white-space: pre für ASCII-Art verwendet
werden kann. Das <pre>–Tag setzt automatisch white-space: pre — das ist sein
Standard-Verhalten.
( (
) )
........
| |]
\ /
`----'
Zeit für eine kleine Kaffeepause.
(_)_ __ | |_ ___ _ __ ___(_)_ _____| |_ __ _| |_(_) ___ _ __
| | '_ \| __/ _ \ '_ \/ __| \ \ / / __| __/ _` | __| |/ _ \| '_ \
| | | | | || __/ | | \__ \ |\ V /\__ \ || (_| | |_| | (_) | | | |
|_|_| |_|\__\___|_| |_|___/_| \_/ |___/\__\__,_|\__|_|\___/|_| |_|
.ascii-art {
white-space: pre;
font-family: monospace;
font-size: clamp(8px, 2vw, 16px); /* Mobile klein, Desktop grösser */
overflow-x: auto; /* Falls es zu breit wird */
}
Kurz gesagt
text-wrapsteuert die Verteilung des Textes auf mehrere Zeilen.white-spacesteuert Leerzeichen und Zeilenumbrüche.
Siehe auch: hyphens & Zeilenbreite (ch) | Text Overflow (text-overflow, word-break, overflow-wrap)
Probier alle Werte live im Text Wrap Composer aus.