国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

解析offsetHeight,clientHeight,scrollHeight之間的區別

2019-11-20 21:38:58
字體:
來源:轉載
供稿:網友

在網上搜了一下,結論非常籠統,講IE從不講版本,因此自己做了測試并上傳結論。以下結論皆是在標準模式下測試通過的,沒有測試quirk模式。

clientHeight

大部分瀏覽器對 clientHeight 都沒有什么異議,都認為是內容可視區域的高度,也就是說頁面瀏覽器中可以看到內容的這個區域的高度,即然是指可看到內容的區域,滾動條不算在內。但要注意padding是算在內。其計算方式為clientHeight = topPadding + bottomPadding+ height - scrollbar.height。

offsetHeight
在IE6,IE7,IE8以及最新的的FF, Chrome中,在元素上都是offsetHeight = clientHeight + 滾動條 + 邊框。

scrollHeight
scrollHeight是元素的padding加元素內容的高度。這個高度與滾動條無關,是內容的實際高度。

計算方式 :scrollHeight = topPadding + bottomPadding + 內容margix box的高度。


在瀏覽器中的區別在于:

IE6、IE7 認為scrollHeight 是網頁內容實際高度,可以小于clientHeight。

FF、Chrome 認為scrollHeight 是網頁內容高度,不過最小值是clientHeight。

注: 以上都是對于一般元素而方言的,body和documentElement的clientHeight, offsetHeight和scrollHeight在各個瀏覽器中的計算方式又不同。在所有的瀏覽器中,如果你想獲取整個視窗的高度,你得用documentElement.clientHeight,因為body.clientHeight是由它的內容決定的。 關于body和documentElement的這些屬性,則完全是另外一回事:


FF19

在body上設置overflow:scroll就是設置瀏覽器的滾動條,導致body.clientHeight永遠都等于body.scrollHeight。

body
clientHeight:body.padding+ body.height(css設置或內容撐的);

offsetHeight:clientHeight+ body.border;

scrollHeight== clientHeight。

documentElement
clientHeight= window視窗高度 -scrollbar.width。

offsetHeight= body.offsetHeight  + body.margin。

scrollHeight= 內容的高度(與body的height樣式無關),但最小值是documentElement.clientHeight。

元素上
offsetHeight= padding + border + height。

clientHeight= padding + height - scrollbar.width。

scrollHeight>= clientHeight

從結果分析,FF認為scrollHeight的最小高度是clientHeight。

offsetLeft = 元素border左上角到window視窗原點的距離 或 到offsetParent的borderbox頂部的距離。

Chrome
body
clientHeight= body.padding + body.height(css設置或內容撐大);

offsetHeight = body.clientHeight + body.border;

scrollHeight= body.padding + 內容的高度(與height樣式無關),但最小值是documentElement.clientHeight。

documentElement
clientHeight= window視窗高度

主站蜘蛛池模板: 瑞丽市| 文成县| 郴州市| 满洲里市| 巧家县| 安陆市| 齐齐哈尔市| 玉树县| 潜江市| 临城县| 始兴县| 来安县| 南华县| 朝阳区| 台江县| 罗甸县| 浙江省| 忻城县| 宣威市| 始兴县| 宁津县| 梨树县| 浦城县| 海城市| 大名县| 余庆县| 临澧县| 无棣县| 成安县| 四平市| 诏安县| 乌什县| 宁蒗| 临猗县| 盱眙县| 当涂县| 剑川县| 遂昌县| 湄潭县| 延庆县| 临安市|