Gunnar Bittersmann: Worttrennung

Beitrag lesen

Hello out there!

ich suche nach einer Moeglichkeit, in einem HTML-Dokument, das im Blocktext verfasst ist, so etwas wie eine automatische Worttrennung bei langen Woertern, die mit Bindestrichen zusammengesetzt sind, einzubauen. […] Gibt es ein Adaequat fuer HTML?

Ja, da der Zeichensatz für HTML das Universal Character Set (UCS)/Unicode ist und das verschiedene Bindestriche enthält:
U+002D hyphen-minus
U+00AD soft hyphen
U+2010 hyphen
U+2011 non-breaking hyphen

Das Dumme ist nur die mangelnde Browserunterstützung:

Firefox trennt nicht nach Bindestrichen und ignoriert auch U+00AD (­).

Der IE kann hier punkten: Er versteht U+00AD (­), trennt also 'Geparden­forelle' am Zeilenende 'Geparden-
forelle' und lässt es in einer Zeile zusammen 'Gepardenforelle'.

Der IE trennt auch nach '-' (U+002D), was nicht immer erwünscht ist, z.B. bei '2006-06-20'. Dem kann man aber mit dem proprietären nobr begegnen: <nobr>2006-06-20</nobr>; wenn’s valide sein soll, versteckt man die Tags in conditional comments: <!--[if IE]><nobr><![endif]-->2006-06-20<!--[if IE]></nobr><![endif]-->.

Der IE unterscheidet auch U+2010 und U+2011: Er trennt bei Bedarf nach U+2010, nicht aber nach U+2011. Allerdings zeigt mein 5.0er beide als Kästchen an.

Aber die ging’s ja um Komposita mit Durchtrennung wie 'Geparden-Forelle'. Mit einem Trick bekommt man den Firefox dazu, nach Bindestrichen zu trennen: Man fügt nach diesen jeweils ein U+200B zero width space ein: Geparden-&#x200B;Forelle. Dumm nur, dass mein IE das als Kästchen darstellt.

Bleibt zu hoffen, dass künftige Browserversionen UCS/Unicode besser unterstützen.

See ya up the road,
Gunnar

--
“Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)