Hans M. Rupp: Zeilenumbruch im HTML-Quelltext beeinflusst Seitendarstellung

Hallo!

Wir haben ziemliche Probleme damit, dass an manchen Stellen die Formatierung des HTML-Quelltextes z.T. verheerende Einflüsse auf das dargestellte Seitenlayout haben kann.

z.B.

<tr>
<td colspan="5" bgcolor="#ffffff"><img height="5" width="1"
src="b.gif"></td>
</tr>
zeichnet einen 5 pix hohen Strich in die Tabelle

<tr>
<td colspan="5" bgcolor="#ffffff">
    <img height="5" width="1" src="b.gif">
</td>
</tr>
zeichnet eine Linie in die Tabelle, die so hoch ist wie eine Textzeile, wegen des Zeilenumbruchs innerhalb des td-tags.

Gut HTML-designer habens "einfach" sie koennen selbst entscheiden ob sie einen Zeilenumbruch einfügen oder nicht.
Das Problem bei solchen Techniken ist, dass heutzutage HTML-Quelltext immer mehr automatisch erzeugt wird z.B. mittels XSL aus XML.
Wir sind z.B. an einem Projekt, das das Web-Publishing Framework Cocoon einsetzt. Zur Laufzeit wird dabei XML mit XSL-Stylesheets in HTML übersetzt. Dabei hat man leider keinen genauen Einfluss darauf wie der Serializer, der den HTML-Text rausschreibt, formatiert.

Was wir also brauchen sind HTML-Seiten als Ausgangspunkt, die immer gleich dargestellt werden, gleichgueltig wie der Quelltext formatiert wird (ob alles auf einer Zeile steht oder im anderen Extrem "pretty print": jedes öffnende Tag auf einer eigenen Zeile mit entsprechender Einrückungstiefe).

Gibt es dazu Techniken? Kann jemand seine Erfahrungen dazu mitteilen?

Vielen Dank,

Hans

  1. Hallo Hans,

    wenn der verwendete XML-Parser korrekt funktioniert, wird die erzeugte HTML-Datei genau so geschrieben wie im XSLT-Stylesheet definiert, inkl. Zeilenumbrüche oder halt auch nicht, ganz nach Wunsch.

    Wenn der verwendete XML-Parser nicht korrekt funktioniert, würde ich mich mit ner Reklamation an den Hersteller wenden.

    Grüße,

    Utz

    1. Hallo Utz,

      vielleicht kann man das Verhalten von Cocoon (benützt Xalan und Xerces) ja als buggy bezeichnen. Problematisch dabei ist wahrscheinlich auch, dass in Coccon idR. mehrere Komponenten in einer Pipeline hintereinanderschaltet sind um das Endergebnis zu produzieren.

      Schön finde ich das derzeitige Verhalten von HTML allerdings nicht. Man sollte eigentlich erwarten, dass die Darstellung nur von Syntax und Semantik abhaengt und die Formatierung keinen Einfluss hat.

      Ich hatte gehofft, dass es vielleicht Techniken gibt, die dieses Problem umgehen ...

      Gruesse,

      Hans

      Hallo Hans,

      wenn der verwendete XML-Parser korrekt funktioniert, wird die erzeugte HTML-Datei genau so geschrieben wie im XSLT-Stylesheet definiert, inkl. Zeilenumbrüche oder halt auch nicht, ganz nach Wunsch.

      Wenn der verwendete XML-Parser nicht korrekt funktioniert, würde ich mich mit ner Reklamation an den Hersteller wenden.

      Grüße,

      Utz

      1. Hallo Hans,

        Schön finde ich das derzeitige Verhalten von HTML allerdings nicht. Man sollte eigentlich erwarten, dass die Darstellung nur von Syntax und Semantik abhaengt und die Formatierung keinen Einfluss hat.

        Dieses Verhalten ist in der Spec entsprechend definiert: "Line breaks are also white space characters." (s. http://www.w3.org/TR/html4/struct/text.html#h-9.1) Da deshalb der Zeilenumbruch in HTML-Syntax ein Leerzeichen ist, ist Deine Erwartungshaltung ja eigentlich erfüllt ;-) es hilft Dir nur halt leider nix beim konkreten Problem.

        Grüße,

        Utz