2012-10-18 58 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为您提供帮助。 –

相关问题