hyphenate-limit-chars: Automatische Silbentrennung feinsteuern
AI generated
{ }
@
CSS · Typografie · Silbentrennung
hyphenate-limit-chars in CSS
Hässliche Kurz-Trennungen bei automatischer Silbentrennung gezielt verhindern

hyphens: auto aktiviert automatische Silbentrennung, aber ohne Feinsteuerung trennt der Browser auch dort, wo nur ein oder zwei Zeichen vor oder nach dem Trennstrich übrig bleiben. hyphenate-limit-chars und die verwandten Limit-Properties legen fest, wie viele Zeichen ein Wort mindestens haben muss und wie viele Zeichen vor und nach der Trennstelle stehen bleiben.

14 Min. Lesezeit hyphenate-limit-chars · hyphens: auto CSS Text Level 4

1. Das Problem: automatische Silbentrennung ohne Feinsteuerung

Sobald hyphens: auto aktiv ist, sucht der Browser bei jedem Zeilenumbruch nach einer gültigen Trennstelle innerhalb eines Wortes, um den Blocksatz oder linksbündigen Text möglichst gleichmäßig zu füllen. Ohne weitere Einschränkung akzeptiert der Browser dabei auch Trennstellen, die typografisch unschön wirken, etwa wenn nur ein einzelnes Zeichen wie bei a- vor dem Trennstrich in der Zeile verbleibt.

Solche Kurz-Trennungen sind nicht nur ästhetisch störend, sie kosten auch Lesbarkeit, weil das menschliche Auge ein derart kurzes Fragment kaum als sinnvollen Wortbestandteil erkennt und dadurch der Lesefluss unterbrochen wird. Gerade bei deutschen Komposita mit vielen möglichen Trennstellen tritt dieses Problem regelmäßig auf, wenn die Silbentrennung dem Browser komplett ohne Grenzwerte überlassen wird.

2. Grundlage: hyphens: auto und die Pflicht zum lang-Attribut

Die Property hyphens: auto aktiviert die sprachabhängige automatische Silbentrennung des Browsers, benötigt dafür aber zwingend ein korrekt gesetztes lang-Attribut auf dem Dokument oder dem betroffenen Element. Ohne dieses Attribut weiß der Browser nicht, welches Trennwörterbuch er verwenden soll, und lässt Text unverändert ungetrennt, selbst wenn hyphens: auto gesetzt ist.

Bei mehrsprachigen Seiten muss deshalb jeder Sprachwechsel im Markup mit einem eigenen lang-Attribut auf dem jeweiligen Container gekennzeichnet werden, sonst wendet der Browser die Trennregeln der Hauptsprache auch auf fremdsprachigen Text an, was zu grammatikalisch falschen Trennstellen führt. Diese Voraussetzung wird in der Praxis überraschend häufig übersehen.

3. Die Syntax von hyphenate-limit-chars

hyphenate-limit-chars nimmt bis zu drei Werte entgegen: die Mindestlänge des Wortes insgesamt, die Mindestanzahl an Zeichen vor der Trennstelle und die Mindestanzahl an Zeichen nach der Trennstelle. Mit hyphenate-limit-chars: 6 3 3 wird ein Wort nur getrennt, wenn es mindestens sechs Zeichen lang ist und dabei mindestens drei Zeichen vor und drei Zeichen nach dem Trennstrich stehen bleiben.

Wird nur ein Wert angegeben, gilt er für die Mindestwortlänge, während vor und nach der Trennstelle jeweils ein sinnvoller Standardwert des Browsers greift. Zwei Werte legen Wortlänge und die vor der Trennstelle nötige Zeichenzahl fest, wobei der Wert danach dann übernommen wird. Diese Abstufung erlaubt es, mit minimalem Code genau die Grenzwerte zu setzen, die für das jeweilige Projekt wichtig sind.


p {
  hyphens: auto;
  /* Wort mindestens 6 Zeichen, je 3 Zeichen vor und nach dem Strich */
  hyphenate-limit-chars: 6 3 3;
}

/* Grosszuegigere Variante fuer kleine Spaltenbreiten,
   wo mehr Trennstellen noetig sind */
.narrow-column p {
  hyphens: auto;
  hyphenate-limit-chars: 5 2 2;
}

4. hyphenate-limit-lines: aufeinanderfolgende Trennungen begrenzen

Auch wenn jede einzelne Trennung für sich betrachtet sauber aussieht, wirkt ein Absatz unruhig, wenn drei oder vier Zeilen hintereinander jeweils mit einem Trennstrich enden. Die Property hyphenate-limit-lines begrenzt genau das, indem sie festlegt, wie viele aufeinanderfolgende Zeilen maximal mit einer Silbentrennung enden dürfen, bevor der Browser eine Zeile lieber ohne Trennung, aber mit größerem Weißraum umbricht.

In der klassischen Print-Typografie gilt eine Faustregel von maximal zwei aufeinanderfolgenden Trennungen, bevor der Lesefluss spürbar leidet. hyphenate-limit-lines: 2 setzt genau diese Regel im Browser um und verhindert, dass ein langer Absatz optisch wie eine Reihe abgehackter Zeilenenden wirkt.


article p {
  hyphens: auto;
  hyphenate-limit-chars: 6 3 3;
  hyphenate-limit-lines: 2; /* max. 2 Trennungen in Folge */
}

5. hyphenate-limit-last: Trennung am Absatz- oder Seitenende vermeiden

Eine Trennung ausgerechnet in der letzten Zeile eines Absatzes oder am Ende einer gedruckten Seite ist typografisch besonders unerwünscht, weil der abgetrennte Wortrest optisch verloren wirkt und beim Weiterlesen leicht übersehen wird. hyphenate-limit-last erlaubt es, Trennungen gezielt für diese Positionen auszuschließen, mit Werten wie always-end für das Absatzende oder page für das Seitenende in gedrucktem oder paginiertem Content.

Für responsive Weblayouts ist vor allem always-end relevant, weil die letzte Zeile eines Absatzes optisch häufig kürzer ist als die übrigen Zeilen und eine Trennung dort besonders unruhig wirkt. Für gedruckte Stylesheets oder PDF-Export über @page-Regeln lohnt sich zusätzlich der Wert page, um Trennungen am Seitenumbruch zu vermeiden.


article p {
  hyphens: auto;
  hyphenate-limit-chars: 6 3 3;
  hyphenate-limit-lines: 2;
  hyphenate-limit-last: always-end; /* letzte Zeile nie trennen */
}

@media print {
  article p {
    hyphenate-limit-last: always-page;
  }
}

6. Grenzen der automatischen Trennung: wann ein manuelles Soft-Hyphen nötig ist

So gut die automatischen Limit-Properties auch kalibriert sind, das eingebaute Trennwörterbuch des Browsers kennt nicht jedes Fachwort, jeden Produktnamen oder jede Wortneuschöpfung, die in redaktionellem Content vorkommt. Bei solchen Wörtern trennt der Browser entweder gar nicht, obwohl eine Trennung sinnvoll wäre, oder er verzichtet komplett auf eine Trennstelle mangels Eintrag im Wörterbuch, was bei sehr langen zusammengesetzten Begriffen zu breiten Lücken im Blocksatz führen kann.

Für genau diese Ausnahmefälle existiert das weiche Trennzeichen ­ (Soft Hyphen), das direkt im HTML-Text an der gewünschten Stelle eingefügt wird und nur dann sichtbar wird und einen Trennstrich erzeugt, wenn an dieser Stelle tatsächlich ein Zeilenumbruch nötig ist. Anders als ein normaler Bindestrich bleibt das weiche Trennzeichen unsichtbar, solange das Wort komplett in eine Zeile passt, und ergänzt damit hyphens: auto gezielt dort, wo das automatische Wörterbuch an seine Grenzen stößt.


<p>
  Die Materialbezeichnung
  <span lang="de">Kohle­faser­verstärkter­Kunststoff</span>
  wird nur an den markierten Stellen getrennt, wenn noetig.
</p>

7. Zusammenspiel mit responsiven Spaltenbreiten

Je schmaler eine Textspalte ist, desto häufiger muss der Browser überhaupt eine Trennstelle finden, um Blocksatz gleichmäßig zu füllen, gleichzeitig wird jede einzelne Trennung dort optisch dominanter, weil weniger Zeichen pro Zeile zur Verfügung stehen. Für schmale mobile Layouts kann es daher sinnvoll sein, die Grenzwerte von hyphenate-limit-chars etwas großzügiger zu setzen als für breite Desktop-Spalten.

Umgekehrt lohnt sich bei sehr breiten Spalten oft, die Silbentrennung ganz zu deaktivieren, weil dort genug Platz vorhanden ist, um Wörter unzertrennt in die nächste Zeile zu verschieben, ohne dass der Blocksatz sichtbar auseinanderreißt. Eine gezielte Media-Query-Abstufung der Trennregeln passt die Feinabstimmung an die tatsächliche Spaltenbreite an, statt eine feste Regel für alle Bildschirmgrößen zu erzwingen.

8. Praxisbeispiel: Produktbeschreibungen im Onlineshop

Produktbeschreibungen in einem deutschsprachigen Onlineshop enthalten oft lange Komposita wie Materialbezeichnungen oder technische Fachbegriffe, die ohne Silbentrennung in schmalen Sidebar- oder Mobile-Layouts unschön über den Container hinausragen oder riesige Lücken im Blocksatz erzeugen. Eine sauber konfigurierte automatische Trennung verbessert hier direkt die Lesbarkeit, ohne dass Redakteure jedes Wort manuell mit weichen Trennzeichen versehen müssen.

Gleichzeitig sollten Produktnamen und Markenbezeichnungen von der automatischen Trennung ausgenommen werden, weil eine Trennung mitten im Markennamen unprofessionell wirkt. Dafür eignet sich hyphens: none gezielt auf der entsprechenden Produktname-Klasse, während der restliche Beschreibungstext weiterhin von hyphens: auto profitiert.


.product-description {
  hyphens: auto;
  hyphenate-limit-chars: 6 3 3;
  hyphenate-limit-lines: 2;
}

.product-name,
.brand-name {
  hyphens: none; /* Markennamen niemals trennen */
}

9. Browser-Support und historische Alternativen

Die unpräfixierten Properties hyphenate-limit-chars, hyphenate-limit-lines und hyphenate-limit-last stammen aus der CSS Text Level 4 Spezifikation und sind noch nicht in jedem Browser flächendeckend implementiert. Historisch existierten herstellerspezifische Vorgänger wie -webkit-hyphenate-limit-before, -webkit-hyphenate-limit-after und -ms-hyphenate-limit-chars, die in älteren Safari- und Edge-Versionen ähnliche Feinsteuerung ermöglichten.

Für produktive Projekte empfiehlt sich, hyphens: auto und ein sinnvolles lang-Attribut als Basis in jedem Fall zu setzen, weil diese Grundlage bereits breit unterstützt wird, und die Limit-Properties als progressive Verbesserung obendrauf zu legen. Fehlt die Unterstützung für die Limit-Properties, trennt der Browser weiterhin automatisch, nur mit den eigenen, meist bereits vernünftigen Standardgrenzwerten.

Property Steuert Beispielwert Effekt
hyphens Silbentrennung ein/aus auto Aktiviert sprachabhängige Trennung
hyphenate-limit-chars Mindestlänge, Zeichen vor/nach 6 3 3 Verhindert Ein-Zeichen-Trennreste
hyphenate-limit-lines Aufeinanderfolgende Trennungen 2 Verhindert Trennstrich-Kaskaden
hyphenate-limit-last Trennung an Absatz/Seitenende always-end Letzte Zeile bleibt ungetrennt

Mironsoft

Modernes CSS, Layout-Architektur und Rendering-Performance

CSS, das wartbar bleibt statt mit jeder Änderung zu brechen?

Wir prüfen bestehende Stylesheets auf Spezifitäts-Chaos und Layout-Thrashing und bauen daraus eine CSS-Architektur mit Cascade Layers, Custom Properties und modernen Layout-Primitiven, die auch nach dem zehnten Feature noch verständlich ist.

CSS-Audit

Spezifität, Cascade-Konflikte und ungenutzte Selektoren systematisch aufdecken.

Architektur-Refactoring

Cascade Layers, Custom Properties und Design Tokens sauber einführen.

Performance-Tuning

Layout-Thrashing, teure Selektoren und Rendering-Engpässe gezielt beheben.

10. Zusammenfassung

hyphenate-limit-chars: Das Wichtigste auf einen Blick

Grundvoraussetzung

hyphens: auto benötigt zwingend ein korrektes lang-Attribut, sonst bleibt Text trotz gesetzter Property ungetrennt.

Kurz-Trennungen vermeiden

hyphenate-limit-chars: 6 3 3 verhindert, dass nur ein oder zwei Zeichen vor oder nach dem Trennstrich stehen bleiben.

Trennstrich-Kaskaden

hyphenate-limit-lines begrenzt aufeinanderfolgende Trennungen, meist auf zwei Zeilen, wie in der Print-Typografie üblich.

Letzte Zeile schützen

hyphenate-limit-last: always-end verhindert eine besonders unruhig wirkende Trennung in der letzten Zeile eines Absatzes.

11. FAQ: hyphenate-limit-chars: Das Wichtigste auf einen Blick

1Was macht hyphenate-limit-chars genau?
Die Property legt fest, wie lang ein Wort mindestens sein muss, damit es überhaupt getrennt wird, und wie viele Zeichen vor und nach der Trennstelle mindestens stehen bleiben müssen.
2Reicht hyphens: auto allein nicht aus?
hyphens: auto aktiviert die Trennung, kontrolliert aber nicht, wie kurz die entstehenden Fragmente sein dürfen. Ohne hyphenate-limit-chars kann der Browser auch bei nur einem Zeichen vor dem Trennstrich trennen.
3Warum funktioniert hyphens: auto manchmal gar nicht?
Meist fehlt das lang-Attribut auf dem Dokument oder Element. Ohne dieses Attribut weiß der Browser nicht, welches Trennwörterbuch er verwenden soll, und lässt den Text ungetrennt.
4Wie liest man die drei Werte von hyphenate-limit-chars?
Der erste Wert ist die Mindestwortlänge insgesamt, der zweite die Mindestanzahl Zeichen vor der Trennstelle, der dritte die Mindestanzahl Zeichen nach der Trennstelle.
5Was bewirkt hyphenate-limit-lines?
Die Property begrenzt, wie viele Zeilen hintereinander jeweils mit einer Silbentrennung enden dürfen, um zu verhindern, dass ein Absatz wie eine Reihe abgehackter Zeilen wirkt.
6Warum sollte die letzte Zeile eines Absatzes nicht getrennt werden?
Eine Trennung in der letzten, oft kürzeren Zeile wirkt optisch unruhig und der abgetrennte Wortrest wird beim Weiterlesen leicht übersehen. hyphenate-limit-last: always-end verhindert das gezielt.
7Sollte ich Markennamen automatisch trennen lassen?
Nein. Für Produktnamen und Markenbezeichnungen empfiehlt sich hyphens: none auf der entsprechenden Klasse, damit sie niemals mitten im Wort umbrechen.
8Gab es vor den unpräfixierten Properties schon ähnliche Kontrolle?
Ja, ältere herstellerspezifische Properties wie -webkit-hyphenate-limit-before, -webkit-hyphenate-limit-after und -ms-hyphenate-limit-chars boten in älteren Safari- und Edge-Versionen ähnliche Feinsteuerung.
9Was passiert, wenn ein Browser die Limit-Properties nicht unterstützt?
hyphens: auto funktioniert weiterhin normal, nur ohne die zusätzliche Feinsteuerung. Der Browser nutzt dann seine eigenen, meist bereits vernünftigen Standardgrenzwerte.
10Sollten schmale mobile Spalten andere Grenzwerte bekommen als breite Desktop-Spalten?
Ja, für schmale Spalten sind etwas großzügigere Grenzwerte sinnvoll, weil dort häufiger eine Trennstelle nötig ist. Für sehr breite Spalten kann Silbentrennung sogar ganz deaktiviert werden.