Jaka jest różnica między document.documentElement.clientHeight a document.body.clientHeight? Czy wartości zwracane są zgodne ze wszystkimi przeglądarkami internetowymi lub czyni ich inaczej?

W moim szczególnym przypadku wydaje się mieć mniejszą wysokość niż element body, który nie ma sensu. Dlaczego to się dzieje?

9
NoodleOfDeath 8 listopad 2011, 18:44

3 odpowiedzi

Najlepsza odpowiedź

Nieruchomość document.documentElement zapewnia element html, podczas gdy właściwość document.body zapewnia element body.

Nieruchomość window.innerHeight zwraca wysokość okna, a nie wysokości zawartości.

Różne przeglądarki dają różne wartości dla wielkości tych elementów, a ta sama przeglądarka może dać Ci różne wartości w zależności od tego, czy strona jest renderowana w trybie Quirks lub Tryb zgodności norm, oraz czy używasz HTML lub XHTML. Element html może reprezentować okno lub całą stronę. Element body może być taki sam rozmiar, jak element html lub rozmiar treści na stronie.

Elementy html i {{X1} są "magiczne" elementy, które nie istnieją w taki sam sposób jak inne elementy. W XHTML zostały zmienione tak, że działają bardziej jak prawdziwe elementy, ale wciąż są kilka rzeczy "magii". Na przykład, element {{x2} X5}} element nie jest.

16
Guffa 8 listopad 2011, 15:09

Zrozumiałem problem! Musiało to zrobić z deklaracją Docalpe tuż przed znacznikiem HTML. Bez Docalpe, dokumentację i faktycznie przełączają się. Dzięki za pomoc wszystkich: D

11
NoodleOfDeath 8 listopad 2011, 15:45

Zapytajmy dobry stary Firebug (ze względu na bycie leniwym, zrobiłem to tutaj tak) dla różnych między tymi dwoma obiektami:

>>> document.documentElement
<html>
>>> document.body
<body class="question-page">

Tak, document.documentElement wskazuje na element na najwyższym poziomie <html>, gdy document.body wskazuje na element <body>.

3
ThiefMaster 8 listopad 2011, 14:46