Swen: Warum kommt ein Leerzeichen wenn keines da ist ???

Beitrag lesen

Wann ist eine Html-Datei wirklich zu ENDE ???

Gute Frage. Wen wollen wir fragen, die Browser oder die Spec ?

Utz geht vom Normalfall aus.
Was sagt aber die Spec? Dort steht, dass http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#h-7.1 die Elemente HEAD und BODY vom Element HTML umgeben werden _sollen_.
  
Und da fängt für den Browser dann das Problem an.
Er muss also auch ein Dokument anzeigen können, das - völlig korrekt, denn der Start- und der Endtag des Elementes HTML sind optional http://www.w3.org/TR/1999/REC-html401-19991224/struct/global.html#edef-HTML - den Endtag des HTML-Elementes nicht beinhaltet.

Was dann? Er kann sich aber nicht einfach das letzte Endtag als Ende schnappen, denn nicht jedes Element muss mit einem Endtag schließen.

Und nun? Er kann sich ja auch nicht einmal darauf verlassen, dass er überhaupt irgendwo einen offenen Tag findet, den er nach irgendwelchen Regeln irgendwann als geschlossen betrachtet. Denn auch das hier ist ja ein valides HTML 4.01 Dokument:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<title></title>Duda

Deshalb verlassen sich (manche?) Browser anscheinend auf die schon genannten Regeln mit den Leerzeichen.

Nun könnte man ja einwenden, dass das alles ja nicht sein müsste, _wenn_ der Endtag </html> vorhanden ist, das Ende also exakt bestimmbar ist. Ich persönlich wage aber mal die Behauptung, dass die meisten Browser gar nicht mal wissen, dass es das Element HTML überhaupt gibt.

Swen