Text-Umbruch
Text-Umbruch in CSS zu kontrollieren ist wichtig für eine gute Lesbarkeit und ein sauberes Layout. Hier sind die wichtigsten CSS-Eigenschaften für Textumbrüche.
hyphens
hyphens steuert die automatische Silbentrennung mit Bindestrichen. Das verbessert Blocksatz und verhindert extreme Lücken.
noneKeine automatische SilbentrennungmanualNur an manuellen Trennstellen (­)autoAutomatische Silbentrennung (benötigt lang-Attribut)
Beispiel:
hyphens: auto
Donaudampfschifffahrtsgesellschaftskapitän und Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz sind sehr lange deutsche Wörter.
.text {
hyphens: auto
}
<html lang="de">...</html>
Wichtig: Silbentrennung funktioniert nur, wenn die Sprache im HTML korrekt gesetzt ist, über das lang Attribut.
word-break
word-break bestimmt, wie Wörter am Zeilenende umbrechen sollen.
normalStandard-Verhalten: Umbruch nur an Leerzeichenbreak-allBricht Wörter überall, auch mitten im Wortkeep-allVerhindert Umbruch in asiatischen Sprachenbreak-wordVeraltet, verwende stattdessenoverflow-wrap
Beispiel:
word-break: break-all
DasisteinextremlangeszusammengesetzteswortohneLeerzeichenundesmussumbrochenwerdenumesindieBoxzupassen.
.text {
word-break: break-all;
}
overflow-wrap (word-wrap)
overflow-wrap (früher word-wrap) bestimmt, ob lange Wörter umgebrochen werden dürfen, wenn sie nicht in die Zeile passen.
normalWörter brechen nicht, können überlaufenbreak-wordLange Wörter werden umgebrochen, wenn nötiganywhereWie break-word, aber berücksichtigt auch weiche Umbrüche
Beispiel:
overflow-wrap: break-word
Hier ist eine URL: https://www.beispiel-website.de/sehr/langer/pfad/zu/einer/datei.html
.text {
overflow-wrap: break-word;
}
white-space
white-space kontrolliert, wie Leerzeichen und Zeilenumbrüche behandelt werden.
normalMehrfach-Leerzeichen ignoriert, automatischer UmbruchnowrapMehrfach-Leerzeichen ignoriert, kein automatischer UmbruchpreLeerzeichen/Umbrüche bleiben erhalten, kein automatischer Umbruchpre-wrapLeerzeichen/Umbrüche bleiben erhalten, mit automatischem Umbruchpre-lineUmbrüche bleiben erhalten, Mehrfach-Leerzeichen ignoriert, mit automatischem Umbruch
Beispiel:
white-space: nowrap mit ellipsis
Dieser sehr lange Text wird nicht umgebrochen und zeigt stattdessen drei Punkte am Ende
.no-wrap {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
white-space: pre
Dieser Text behält alle Leerzeichen und Zeilenumbrüche!
.white-space-pre {
white-space: pre;
}
text-overflow
text-overflow bestimmt, wie überlaufender Text angezeigt wird (nur mit white-space: nowrap und overflow: hidden).
clipText wird einfach abgeschnittenellipsisZeigt drei Punkte (...) am Ende
Beispiel:
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
Donaudampfschifffahrtsgesellschaftskapitän und Rindfleischetikettierungsüberwachungsaufgabenübertragungsgesetz sind sehr lange deutsche Wörter.
.text {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
Wichtig: text-overflow funktioniert nur, wenn alle drei Eigenschaften gesetzt sind:
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
word-break→ Wie Wörter umbrechen (break-all = überall)overflow-wrap→ Ob lange Wörter umbrechen dürfen (break-word = ja)white-space→ Wie Leerzeichen behandelt werden (nowrap = kein Umbruch)hyphens→ Automatische Silbentrennung (auto = einschalten)text-overflow→ Was bei Überlauf passiert (ellipsis = ...)
See the Pen Text-Umbruch Spielwiese by Intensivstation (@intensivstation) on CodePen.