Jan L.: Wo ist der document.body hingekommen?

Beitrag lesen

Hallo,

He, danke. Von document.documentElement hab ich noch nie was gehört.

So ganz klar ist mir das Verhalten in allen Fällen auch nicht. Ich versuche
es mal zu erklären.

'document.documentElement' liefert dir das Wurzelelement des Dokuments. In
deinem Fall also 'HTML'.

Definiere einfach mal ein 'border' für <body>. Dann siehst du, daß dein
absolut positioniertes Element im standardkonformen Modus gar nicht mehr
innerhalb von <body> liegt (der ist nur so hoch wie sein nicht aus dem Fluss
genommener Inhalt). Deshalb hilft auch der Zugriff über 'document.body' nicht
viel, obwohl 'document.body' auch im standardkonformen Modus existiert.
'document.body.offsetHeight' würde dir auch hier die Höhe des <body>-Elements
liefern, nur ist die eben nicht gleich der Höhe des gesamten Dokuments.

Dein absolut positioniertes <div> liegt aber innerhalb von <html>. Wenn du dir
also über 'document.documentElement' das <html>-Element holst und dessen
Höhe oder Scrollposition abfragst, klappt es wieder.

Was ich in dem Zusammenhang nicht verstehe, ist das Verhalten von HGBildern,
die für <body> definiert sind. Da wird dann im standardkonformen Modus die
Grafik außerhalb ihres Containers angezeigt. Zumindest solange man das
Dokument nicht z.B. als 'application/xhtml+xml' ausliefert. Verstehe wer will ...

Gruß, Jan