您好,欢迎访问一九零五行业门户网

关于浏览器window、document、html、body高度的探究_html/css_WEB-ITnose

首先说明本人所理解的这几个元素的计算
window高度应当是文档所在窗口的可视高度(没有包括浏览器的滚动条),计算方法document.documentelement.clientheight
document高度应该为文档内容的高度,计算方法math.max(document.body[ scrollheight ], document.documentelement[ scrollheight])
html高度应当为html元素的高度(包括边框滚动条),计算方法htmlelement.offsetheight
body高度是body元素的高度(包括边框滚动条),计算方法bodyelements.offsetheight;
以上测试方式和jquery的处理相同。直接使用jquery来测试。
用例:
注意:里面的#absolute是脱离文档流的元素。
测试必要条件:
1.所有测试都在没有设定margin/padding为整数的情况下测定。
2.其中细节高度笔者使用qq截图工具取像素对比
我是absolute
我是normal

显示效果为
第一组测试:ie8
ie8总结:
window可视窗口高度,不包括浏览器滚动条(ie后面两个图对比可得,第二个ie下面有个滚动条占6px)。ie有一个特点:window高度与真正的可视窗口相比会少4px(第三个ie图片可知,这个时候document的高度和可视窗口高度相同),说明ie的window四边有2px的间隙,也就是ie自己的offset值。
document文档高度,完全显示所有文档内容的高度(非iframe内【包括脱离文档流的元素显示】,第一个ie图可得)和ie工作区(看html解释)取最大值(这个高度最终决定窗口滚动条能滚动显示到哪里)
html高度是窗口的高度,这个窗口是ie自己划定的浏览器工作区域高度,包括可视窗口、2px的offset、浏览器滚动条等等,看下面的效果图
body高度是内容真实高度(脱离文档流定位的不再里面,三个图可以为此作证)
第二组测试:ie9+
ie9+总结:
window高度是可视窗口高度,不包括浏览器滚动条。
document文档高度,完全显示所有文档内容的高度(非iframe内【包括脱离文档流的元素显示】,第一个ie图可得)和ie工作区(看html解释)取最大值(这个高度最终决定窗口滚动条能滚动显示到哪里)
html高度是窗口的高度,这个窗口是ie自己划定的浏览器工作区域高度,包括可视窗口、浏览器滚动条,比ie8要标准一些(没有offset了,滚动条和工作区边也没有了间隙,看下图)
body高度内容真实高度(脱离文档流定位的不再里面)
第二组测试:chrome
chrome总结:
window高度是可视窗口高度,不包括浏览器滚动条。
document高度是完全显示所有文档内容的高度(非iframe内【包括脱离文档流的元素显示】,第一个chrome图可得)和可视窗口高度取最大值(这个高度最终决定窗口滚动条能滚动显示到哪里)
html高度和body内容高度相同
body高度内容真实高度(脱离文档流定位的不再里面)
第三组测试:firefox
firefox总结:
window高度是可视窗口高度,不包括浏览器滚动条。
document高度是完全显示所有文档内容的高度(非iframe内【包括脱离文档流的元素显示】,第一个firefox图可得)和可视窗口高度取最大值(这个高度最终决定窗口滚动条能滚动显示到哪里)
html高度和body内容高度相同
body高度内容真实高度(脱离文档流定位的不再里面)
好了,总结一下:
window高度是可视窗口高度,不包括浏览器滚动条高度。比较特别的是ie8的可视窗口边上有2px的offset,所以ie8的可视窗口高度会比我们看到的窗口要小4px。
document高度是完整文档高度,这个高度计算根据浏览器不同而不同:标准浏览器document高度 = max(文档真实完整高度【包括脱离文档流的元素的显示】,可视窗口高度);ie浏览器document高度 = max(文档真实完整高度【包括脱离文档流的元素的显示】,ie工作区高度)
html高度根两种:标准浏览器html高度=body内容高度;ie浏览器html高度 = ie工作区高度(具体查看ie的分析);
body高度是内容真实高度(脱离文档流定位的不再里面)。
对比总结中可以看出,ie和标准浏览器区别最大的是document和html的计算方法。有一点要说明的是,ie的documen高度因为可能是ie工作区高度,那么可能会包括滚动条,如ie9+测试的第二个图可以看出。
这种分析最耗时间,如果大家觉得不错就别光看不顶了。
如果觉得本文不错,请点击右下方【推荐】!
其它类似信息

推荐信息