javascript - document.documentElement.clientHeight 和 document.body.clientHeight 的区别

标签 javascript

document.documentElement.clientHeightdocument.body.clientHeight 有什么区别?返回值在所有 Web 浏览器中是否一致,或者每个浏览器的评估方式不同?

在我的特殊情况下,documentElement 的高度似乎小于 body 元素,这没有意义。为什么会这样?

最佳答案

document.documentElement 属性为您提供了 html 元素,而 document.body 属性为您提供了 body 元素。

window.innerHeight 属性返回窗口的高度而不是内容的高度。

不同的浏览器会为这些元素的大小提供不同的值,同一个浏览器可能会根据页面是以 Quirks Mode 还是 Standards Compliance Mode 呈现以及您使用的是 HTML 还是 XHTML 来提供不同的值。 html 元素可以代表窗口,也可以代表整个页面。 body 元素可以与 html 元素大小相同,也可以与页面中内容的大小相同。

htmlbody 元素是“魔法”元素,它们的存在方式与其他元素不同。在 XHTML 中,它们发生了变化,因此它们更像真实元素,但仍有一些东西是“神奇的”。例如,body 元素本身没有背景,htmlbody 共享相同的背景,并且它始终覆盖整个窗口,即使 body 元素没有。

关于javascript - document.documentElement.clientHeight 和 document.body.clientHeight 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8052178/

相关文章:

javascript - jQuery 使事件仅在 div 可见时可用,并在 div 不可见时禁用它

javascript - 获取点击元素的 ID 名称并显示具有相同类名称的 div

javascript - 为什么组件退出时 CSSTransition 没有动画?

javascript - 如何使用 jasmine-node 监视依赖模块内的方法

javascript - 为什么变量 "y"的值为 5?不是7?

javascript - 如何在 ar js/three.js 中禁用 fps 显示?

javascript - js 捕获变量是否被 js 更改

Javascript 空闲访客检查

javascript - 从弹出窗口在父窗口中提交表单?

javascript - 更改不存在元素的 CSS 属性