2011-11-08 1 views
3

document.documentElement.clientHeightdocument.body.clientHeightの違いは何ですか?戻り値はすべてのWebブラウザで一貫していますか、またはそれぞれのWebブラウザで異なると評価されていますか?document.documentElement.clientHeightとdocument.body.clientHeightの相違点

私の特定のケースでは、documentElementbody要素よりも小さいと思われますが、これは意味をなさないものです。なぜこれが起こるのですか?トップレベル<html>

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

ので、document.documentElementポイント:

+1

あなたはちょうどgoogleそれを持っていますか?私たちはプログラム上の問題がドキュメンテーションではないことを期待しています:) – Qchmqs

+2

Fyi、異なる質問を別々に分割する必要があります。異なる質問。 – ThiefMaster

+2

は本当の質問ではなく閉じていましたが、実際には本当の質問にGuffaの答えを見つけるのに20分を費やしました。 @ネイトが同意した。 – Nate

答えて

10

document.documentElementプロパティはhtml要素を返し、document.bodyプロパティはbody要素を返します。

window.innerHeightプロパティは、コンテンツの高さではなくウィンドウの高さを返します。

異なるブラウザでは、これらの要素のサイズに異なる値が与えられます。同じブラウザでは、ページがQuirksモードで表示されるか、標準準拠モードで表示されるか、HTMLまたはXHTML 。 html要素は、ウィンドウまたはページ全体を表すことができます。 body要素は、html要素と同じサイズでも、ページ内のコンテンツのサイズでもかまいません。

html」と「body」の要素は、他の要素と同じように存在しない「魔法の」要素です。 XHTMLでは、実際の要素のように機能するように変更されましたが、まだ「魔法」なものがいくつかあります。たとえば、body要素には背景がありません。htmlbodyは同じ背景を共有し、body要素がない場合でも常にウィンドウ全体をカバーします。

+0

ありがとう!それはたくさんの助けになりました! –

3

のは、古き良き放火犯を聞いてみよう、これら2つのオブジェクト間の異なるため(怠けているのために、私は右ここSOにそれをやりました)要素はdocument.body<body>要素を指しています。

+3

これは質問に答えますか?投稿から、私はOPがdocument.documentElementが ''要素を参照しており、 ''よりどのように ' 'が大きいか知りたいと思っています。 –

+0

彼は質問を編集しました。 – ThiefMaster

7

問題を見つけました。 HTMLタグの直前のDOCTYPE宣言と関係していました。 doctypeがなければ、documentElementとbodyは実際に切り替わります。誰もが助けてくれてありがとう:D

+1

はい、私は、ページがQuirksモードまたは標準準拠モードで表示されるかどうかによって値が異なる可能性があると言いました。 – Guffa

関連する問題