2012-10-18 99 views
5

我一直在谷歌搜索,但仍然無法找到爲什麼
$(document).height()不同於$(document.body).height()

更重要的是,有誰能告訴我jQuery中的高度方法
與原始JavaScript之間的對應關係嗎?例如,$(document).height()相當於document.documentElement.scrollHeight

+0

try body {margin:0; padding:0;}然後檢查高度 –

回答

4

因爲在你的HTML元素<body>是另一個塊元素(很像<div>),以及任何塊級元素,它可以有立體造型(marginpaddingwidthheight等)。

考慮到<body>元素的「大小」並不需要直接對應document對象的大小(對應於整個HTML呈現的整個文檔)。一個很好的原因是<body>元素也在<html>元素內,這是也是塊元素,並且可以有其各自的維度。

如果您的<html>元素例如有,那麼您的<body>元素的有效大小肯定與整個document完全不同。

現在,不要誤會我的意思:documentdocument.body可以有相同的尺寸(試行檢查的StackOverflow的爲例),但你必須明白,<body>只是另一個HTML塊,您可以通過CSS操作。

+0

嗨,Ilagan,根據你的回答,你認爲如果我們重置瀏覽器標準的CSS(html,body {margin:0; padding:0;}),那麼我們會得到相同的高度,包括clientHeight,offsetHeight和scrollHeight? 順便說一句:我做了一些測試,結果不是那樣的。 –

+0

如果您重置爲'html,body {margin:0;填充:0; }',**和**確保你的'寬度'和'高度'設置正確,你應該。這不僅僅是利潤和墊料。確保你不重寫你的重置規則以及其他一些樣式表。 –

0

我認爲身體有一個標準的餘量。對於第二部分,我不知道你的意思。

+0

是的,我認爲標準差是導致這兩者不同的原因之一,但是應該有其他原因。無論如何,thx爲您提供幫助。 –

相關問題