为了账号安全,请及时绑定邮箱和手机立即绑定

clientHeight,scrollHeight和offsetHeight到底有什么区别

clientHeight,scrollHeight和offsetHeight到底有什么区别

正在回答

2 回答

clientHeight

大部分浏览器对 clientHeight 都没有什么异议,认为是元素可视区域的高度,也就是说元素或窗口中可以看到内容的这个区域的高度,即然是指可看到内容的区域,滚动条不算在内。但要注意padding是算在内。其计算方式为clientHeight = topPadding + bottomPadding+ height - 水平滚动条高度。

offsetHeight

在IE6,IE7,IE8, IE9以及最新的的FF, Chrome中,对于一般元素,都是offsetHeight = padding + height + border = clientHeight + 滚动条 + 边框。 

scrollHeight


scrollHeight的争议比较大,有些浏览器认为scrollHeight可以小于clientHeight,有些认为scrollHeight至少应该等于clientHeight。但有一点是一样的,就是scrollHeight >= topPadding + bottomPadding + 内容margin box的高度。

在浏览器中的区别在于:

IE6、IE7 认为scrollHeight 是内容高度,可以小于clientHeight。

FF 认为scrollHeight 是内容高度,不过最小值是clientHeight。

注: 以上都是对于一般元素而方言的,body和documentElement的clientHeight, offsetHeight和scrollHeight在各个浏览器中的计算方式又不同。

在所有的浏览器中,如果你想获取视窗可见部分的高度,应该使用documentElement.clientHeight,因为body.clientHeight是由它的内容决定的。


4 回复 有任何疑惑可以回复我~

我直接上图了http://img1.sycdn.imooc.com//562758110001a57a06090602.jpg

7 回复 有任何疑惑可以回复我~
#1

nideyida

太乱了看不懂
2015-10-28 回复 有任何疑惑可以回复我~
#2

交替的黑白键

好图~
2016-01-04 回复 有任何疑惑可以回复我~
#3

晴雨踏青

敢问少侠图从哪里弄到的
2016-03-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

clientHeight,scrollHeight和offsetHeight到底有什么区别

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信