document.body.clientHeight取页面高度的问题

我想得到整个页面的高度,但是我用document.body.clientHeight输出网页的高度时,得到的却是和document.body.offsetHeight相同的值,两个都是取body内元素div的height+padding2+border2,这是为什么呢?谢谢大家!

HTML部分:

<body>
    <div id="abc" class="aaa">测试</div>
</body>

JS部分:

window.onload = function(){
    var body = document.body;
    alert(body.clientHeight)    
};

输出的结果:

alert(body.clientHeight)    //得到1402
alert(body.offsetHeight)    //得到1402

补充:
用innerHeight可以得到窗口高度

阅读 11.4k
2 个回答

这不是很正常吗?首先你取的是document.body,offsetHeight:body+其内边距+滚动条+边框
clientHeight:body+其内边距- 水平滚动条高度,但是body的滚动条是不包括在其内容高度的,是算作document.documentElement的,所以body的滚动条可以无视,你body没有设置边框所以二者相等,都为body+其内边距

你把paddingborder,margin,这些给body。然后再试试,就知道offsetclient的区别了。

推荐问题