@@Rolf B
ein div zwischen head und body ist auch nicht der Weisheit letzter Schluss.
Im DOM ist kein div zwischen head und body.
Nach </html>
ist der Parser im ‘after head’ insertion mode. Das nächste gelesene <div>
-Tag fällt unter ‘anything else’, demzufolge wird ein body
-Element generiert, in den ‘in body’ insertion mode gewechselt und das aktuelle Token (<div>
) nochmals verarbeitet – und damit das div
in den eben generierten body
gehängt.
Nach dem </div>
– der Parser befindet sich im ‘in body’ insertion mode – wird <body>
gelesen. Parse error – was soll’s. Es gilt das unter ‘Otherwise’ gesagte: Etwaige im Tag vorhandene Attribute (hier nicht der Fall) werden dem schon bestehenden body
-Element hinzugefügt, falls dort noch keine derartigen Attribute gibt. (Es werden also keine schon vorhandenen Werte durch das fehlerhafte <body>
-Start-Tag überschrieben.)
Damit generiert das HTML
<html>
<head></head>
<div>
NECK
</div>
<body>
BODY
</body>
</html>
dasselbe DOM wie:
<html>
<head></head>
<body>
<div>
NECK
</div>
BODY
</body>
</html>
(Stillschweigend vorausgesetzt, das XHTML 1.0 wird vom HTML-Parser verarbeitet, nicht vom XML-Parser.)
LLAP 🖖
PS: Bei der Recherche bin ich auf dieses Fundstück gestoßen.
„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann