Jquery 为什么$(document.height()与$(document.body).height()不同?

Jquery 为什么$(document.height()与$(document.body).height()不同?,jquery,document,Jquery,Document,我在谷歌上搜索了一段时间,但仍然找不到原因 $(document.height()与$(document.body).height()不同吗 另外,有谁能告诉我身高方法之间的对应关系吗 在jQuery和原始JavaScript中 例如,$(document.height()相当于document.documentElement.scrollHeight 我认为身体有一个标准的边缘。 对于第二部分,我不知道您的意思。因为HTML中的元素只是另一个块元素(很像),并且与任何块元素一样,它可以具有维度

我在谷歌上搜索了一段时间,但仍然找不到原因
$(document.height()
$(document.body).height()不同吗

另外,有谁能告诉我身高方法之间的对应关系吗
在jQuery和原始JavaScript中


例如,
$(document.height()
相当于
document.documentElement.scrollHeight

我认为身体有一个标准的边缘。 对于第二部分,我不知道您的意思。

因为HTML中的
元素只是另一个块元素(很像
),并且与任何块元素一样,它可以具有维度样式(
边距
填充
宽度
高度
,等等)

考虑到这一点,
元素的“大小”不需要直接对应于
文档
对象的大小(作为一个整体对应于呈现的整个HTML文档)。一个很好的理由是
元素也位于
元素内部,该元素也是块元素,并且可以有其各自的维度

例如,如果您的
元素具有
填充:10px
,则您的
元素的有效大小肯定会与整个
文档的有效大小完全不同


现在,请不要误会我:
document
document.body
可以具有完全相同的大小(例如,尝试检查StackOverflow),但您必须了解
只是可以通过CSS操作的另一个HTML块。

尝试body{margin:0;padding:0;},然后检查heightshi,Ilagan,根据您的回答,您认为如果我们重置浏览器标准css(html,body{margin:0;padding:0;}),那么我们将获得相同的高度,包括clientHeight、offsetHeight和scrollHeight?顺便说一句:我做了一些测试,结果不是这样的。如果你重置回
html,body{margin:0;padding:0;}
,并确保你的
宽度和
高度设置正确,你应该这样做。这不仅仅是边缘和填充物的问题。请确保您没有在其他样式表的某个地方覆盖重置规则。是的,我确实认为标准边距是导致这两个样式表不同的原因之一,但应该还有其他原因。无论如何,谢谢你的帮助。