
Max und Moritz, gar nicht träge,
sägen heimlich mit der Säge,
Ritzeratze! voller Tücke,
in die Brücke eine Lücke
(Wilhelm Busch)
Die deutsche Sprache kennt so schöne Bandwurm-Worte wie
Donau-Dampfschifffahrts-Kapitäns-Mütze oder Auslands-Krankenversicherungs-Police,
aber was machen die dummen Browser damit? Man betrachte diesen Absatz nur mal im Internet
Explorer und in einem ordentlichen Browser: Der IE bricht eine Zeile nach einem Bindestrich um,
Firefox und Mozilla tun es nicht und erzeugen hässliche Lücken im Fließtext.
Ist der IE hier nicht besser? Tja, dann muss man aber auch hinnehmen, dass "-3750"
eventuell am Zeilenende nach dem Minuszeichen getrennt wird und URLs mit Bindestrich und
Telefonnummern mit Durchwahl ebenfalls. Wie kann man alle Browser dazu bringen, lange Worte an
Soll-Bruchstellen zu trennen? Und wie kann man das Gegenteil erreichen, dass bei einem Leerzeichen
kein Zeilenumbruch geschieht, damit bei "150 Euro" und
Browser sind nun einmal keine Textverarbeitungs-Programme, eine eingebaute intelligente Silbentrennung gibt es nicht. HTML sieht vor, dass Fließtext bei Leerzeichen automatisch umgebrochen und eine neue Zeile erzeugt wird. Das ist schon recht viel, reicht aber häufig nicht aus, sodass nachgebessert wurde. Die HTML-Standards sind in diesem Punkt bisher nicht sehr erfolgreich gewesen. Das Dumme ist: Was die Standards vorsehen, setzen die Browser nicht um, und das was die Browser können ist nicht standardkonform. Nach einem kurzen Betrachten der Theorie und der traurigen Realität geht es im Folgenden darum
Eines vorweg: Die Anhänger der reinen Lehre der Web-Standards werden mit vielem nicht einverstanden sein. Die Realität im Web ist nun aber mal so wie sie ist und fordert Lösungen.
Das folgende Zitat stammt aus der W3C-Recommendation für HTML 4.01 von 1999, hier leicht gekürzt in deutscher Übersetzung: "In HTML gibt es zwei Typen von Trennzeichen: den normalen Trennstrich und das weiche Trennzeichen (soft hyphen). Der normale Trennstrich sollte von den Benutzerprogrammen wie jedes andere Zeichen behandelt werden (also keine Trennung erfolgen). Das weiche Trennzeichen zeigt dem Programm, wo ein Zeilenumbruch auftreten kann.
Wenn eine Zeile an einem weichen Trennzeichen umgebrochen wird, muss ein Trennstrich am Ende der ersten Zeile stehen. Wenn eine Zeile an einem weichen Trennzeichen nicht umgebrochen wird, darf das Benutzerprogramm keinen Trennstrich ausgeben. In HTML wird der normale Trennstrich durch das '-'-Zeichen repräsentiert. Das weiche Trennzeichen wird repräsentiert durch die Entity-Referenz ­ (soft hyphen)."
Nach dem Standard macht es also der Internet Explorer falsch, wenn er nach einem normalen Trennstrich eine Zeile umbricht. Allerdings versteht er auch das ­ und zeigt das weiche Trennzeichen nur an wenn erforderlich. Mozilla und Firefox trennen bei einem normalem Trennstrich korrekter Weise nicht, beherrschen dafür aber das ­ nicht, dieses Zeichen wird niemals angezeigt sondern schlichtweg ignoriert. Mehr dazu auf Peter-Paul Kochs Testseite mit dem Fazit "Incompatibility soup".
Will man zwischen zwei Worten oder zusammen gehörenden Begriffen einen Zeilenumbruch verhindern, benutzt man das geschütze Leerzeichen (not breaking space). Das entspricht dem HTML-Standard, funktioniert in allen Browsern wie gewünscht, reicht allerdings wegen der weit reichenden Trennungstendenz des IE oftmals nicht aus.
Nach den Tests von Jukka Korpela Word division in IE trennt der Internet Explorer unter anderen nach Trennstrichen (Minuszeichen, -), Prozent- (%) und Gradzeichen (°), vor öffnenden und nach schließenden Klammern sowie vor bzw. nach Guillemets (« »). Das ist in den meisten Fällen auch ganz praktisch, besonders für die deutsche Sprache mit ihren langen zusammen gesetzten Bandwurm-Worten.
Aber es gibt auch Probleme mit diesem radikalen Trennungsprinzip. So wird "-35000"
eventuell umgebrochen zu "-" und "35000", "Latin-1" zu
"Latin-" und "1". Ein "-18°C" kann sogar entweder vor der
"18" oder vor dem "C" getrennt werden. Im diesem Fall hilft auch kein
Codieren als "-18° C", denn der IE bricht gnadenlos nach
dem Gradzeichen und vor dem not breaking space ( ) um und macht die Sache dann mit dem
Leerzeichen am Zeilenanfang noch unerfreulicher. Andere Problemfälle sind Ausdrücke wie
Person(en), a[0], %20 sowie viele mathematische Formeln, die machmal unerwartet getrennt werden.
Ein Web-Designer kann nie wissen, wie ein Besucher seine Webseite erlebt. Er weiss nicht, wie groß dessen Bildschirm ist, wie die Auflösung des Monitors ist, ob das Browserfenster auf Vollbild aufgezogen wird oder nicht, welche Schriftarten installiert sind und ob die Ansicht eventuell vergrößert oder verkleinert wurde. Er kann deshalb überhaupt nicht festlegen, an welchen Stellen sein Text umgebrochen wird. Er sollte aber alles tun, damit der Text lesbar bleibt. Hier sind einige Möglichkeiten, um langen Bandwurm-Wörtern eine möglichst passende Soll-Bruchstelle zu geben:
Donau-<wbr />Dampfschifffahrts-<wbr />Kapitäns-<wbr />Mütze
und die Auslands-<wbr />Versicherungs-<wbr />Police in
allen gängigen Browsern sinnvoll getrennt. Doch leider ist das Dokument damit nicht mehr
valide.Man kann leider oft nicht beides haben: ein standardgemäß korrektes HTML-
Nun zu den Möglichkeiten, einen unerwünschten Zeilenumbruch zu verhindern, vollständig überzeugend sind die meisten von ihnen jedoch auch nicht:
120 Euro ist zwar etwas umständlicher zu schreiben als ein einfaches
Leerzeichen und wird darum auf vielen Seiten gerne "vergessen", ist jedoch
gültiges HTML und überall problemlos einsetzbar. Aber es deckt eben im Internet
Explorer nicht alle oben genannten Fälle ab.<span style="white-space:nowrap">-18° C</span>
tut genau das was sie soll, die Webseite ist damit aber nicht mehr korrektes HTML im Sinne
der Web-Standards.<nobr>-18° C</nobr>
oder <nobr>vis-a-vis</nobr> ist einfach zu verwenden,
bewirkt aber auch, dass die Seite nicht mehr valide ist.Man sieht, es gibt keinen einfachen, den HTML-Standards entsprechenden Weg, den Internet Explorer an unerwünschten Zeilenumbrüchen innerhalb einzelner Begriffe zu hindern. Obwohl ich diesen Browser selber nicht schätze, muss ich akzeptieren, dass 50 bis 70% aller Besucher ihn benutzen. Man kann eben nicht alles haben, und mir sind die Besucher (oder der Auftraggeber) wichtiger als das Kleben an Standards, die für aktuelle Probleme keine befriedigenden Lösungen bieten.