課程
/前端開發(fā)
/JavaScript
/JavaScript進(jìn)階篇
clientHeight,scrollHeight和offsetHeight到底有什么區(qū)別
2015-10-21
源自:JavaScript進(jìn)階篇 9-20
正在回答
clientHeight
大部分瀏覽器對(duì) clientHeight 都沒有什么異議,認(rèn)為是元素可視區(qū)域的高度,也就是說元素或窗口中可以看到內(nèi)容的這個(gè)區(qū)域的高度,即然是指可看到內(nèi)容的區(qū)域,滾動(dòng)條不算在內(nèi)。但要注意padding是算在內(nèi)。其計(jì)算方式為clientHeight = topPadding + bottomPadding+ height - 水平滾動(dòng)條高度。
offsetHeight
在IE6,IE7,IE8, IE9以及最新的的FF, Chrome中,對(duì)于一般元素,都是offsetHeight = padding + height + border = clientHeight + 滾動(dòng)條 + 邊框。?
scrollHeight
scrollHeight的爭議比較大,有些瀏覽器認(rèn)為scrollHeight可以小于clientHeight,有些認(rèn)為scrollHeight至少應(yīng)該等于clientHeight。但有一點(diǎn)是一樣的,就是scrollHeight >= topPadding + bottomPadding + 內(nèi)容margin box的高度。
在瀏覽器中的區(qū)別在于:
IE6、IE7 認(rèn)為scrollHeight 是內(nèi)容高度,可以小于clientHeight。
FF 認(rèn)為scrollHeight 是內(nèi)容高度,不過最小值是clientHeight。
注:?以上都是對(duì)于一般元素而方言的,body和documentElement的clientHeight, offsetHeight和scrollHeight在各個(gè)瀏覽器中的計(jì)算方式又不同。
在所有的瀏覽器中,如果你想獲取視窗可見部分的高度,應(yīng)該使用documentElement.clientHeight,因?yàn)閎ody.clientHeight是由它的內(nèi)容決定的。
我直接上圖了
nideyida
交替的黑白鍵
晴雨踏青
舉報(bào)
本課程從如何插入JS代碼開始,帶您進(jìn)入網(wǎng)頁動(dòng)態(tài)交互世界
1 回答offsetHeight scrollHeight clientHeight
1 回答documentElement body的差別,還有clientHeight offsetHeight scrollHeight的差別
8 回答clientHeight和scrollHeight的區(qū)別,誰知道
1 回答offsetHeight,scrollHeight兩者的區(qū)別是什么啊
1 回答offsetHeight和clientHeight
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2015-10-28
clientHeight
大部分瀏覽器對(duì) clientHeight 都沒有什么異議,認(rèn)為是元素可視區(qū)域的高度,也就是說元素或窗口中可以看到內(nèi)容的這個(gè)區(qū)域的高度,即然是指可看到內(nèi)容的區(qū)域,滾動(dòng)條不算在內(nèi)。但要注意padding是算在內(nèi)。其計(jì)算方式為clientHeight = topPadding + bottomPadding+ height - 水平滾動(dòng)條高度。
offsetHeight
在IE6,IE7,IE8, IE9以及最新的的FF, Chrome中,對(duì)于一般元素,都是offsetHeight = padding + height + border = clientHeight + 滾動(dòng)條 + 邊框。?
scrollHeight
scrollHeight的爭議比較大,有些瀏覽器認(rèn)為scrollHeight可以小于clientHeight,有些認(rèn)為scrollHeight至少應(yīng)該等于clientHeight。但有一點(diǎn)是一樣的,就是scrollHeight >= topPadding + bottomPadding + 內(nèi)容margin box的高度。
在瀏覽器中的區(qū)別在于:
IE6、IE7 認(rèn)為scrollHeight 是內(nèi)容高度,可以小于clientHeight。
FF 認(rèn)為scrollHeight 是內(nèi)容高度,不過最小值是clientHeight。
注:?以上都是對(duì)于一般元素而方言的,body和documentElement的clientHeight, offsetHeight和scrollHeight在各個(gè)瀏覽器中的計(jì)算方式又不同。
在所有的瀏覽器中,如果你想獲取視窗可見部分的高度,應(yīng)該使用documentElement.clientHeight,因?yàn)閎ody.clientHeight是由它的內(nèi)容決定的。
2015-10-21
我直接上圖了