最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解析offsetHeight,clientHeight,scrollHeight之間的區(qū)別

 更新時(shí)間:2013年11月20日 09:55:33   作者:  
這篇文章主要是對(duì)offsetHeight,clientHeight,scrollHeight之間的區(qū)別進(jìn)行了詳細(xì)介紹,需要的朋友可以過來參考下,希望對(duì)大家有所幫助

在網(wǎng)上搜了一下,結(jié)論非常籠統(tǒng),講IE從不講版本,因此自己做了測(cè)試并上傳結(jié)論。以下結(jié)論皆是在標(biāo)準(zhǔn)模式下測(cè)試通過的,沒有測(cè)試quirk模式。

clientHeight

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

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

scrollHeight
scrollHeight是元素的padding加元素內(nèi)容的高度。這個(gè)高度與滾動(dòng)條無關(guān),是內(nèi)容的實(shí)際高度。

計(jì)算方式 :scrollHeight = topPadding + bottomPadding + 內(nèi)容margix box的高度。


在瀏覽器中的區(qū)別在于:

IE6、IE7 認(rèn)為scrollHeight 是網(wǎng)頁內(nèi)容實(shí)際高度,可以小于clientHeight。

FF、Chrome 認(rèn)為scrollHeight 是網(wǎng)頁內(nèi)容高度,不過最小值是clientHeight。

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


FF19

在body上設(shè)置overflow:scroll就是設(shè)置瀏覽器的滾動(dòng)條,導(dǎo)致body.clientHeight永遠(yuǎn)都等于body.scrollHeight。

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

offsetHeight:clientHeight+ body.border;

scrollHeight== clientHeight。

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

offsetHeight= body.offsetHeight  + body.margin。

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

元素上
offsetHeight= padding + border + height。

clientHeight= padding + height - scrollbar.width。

scrollHeight>= clientHeight

從結(jié)果分析,F(xiàn)F認(rèn)為scrollHeight的最小高度是clientHeight。

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

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

offsetHeight = body.clientHeight + body.border;

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

documentElement
clientHeight= window視窗高度 – 滾動(dòng)條高度。

offsetHeight  = body.offsetHeight + body.margin;

scrollHeight  = 內(nèi)容的高度(與body上的height無關(guān)),但最小值是documentElement.offsetHeight。

元素上
offsetHeight = padding + border + height。

clientHeight = padding + height - scrollbar.width。

scrollHeight >= clientHeight

Safari 5
body
clientHeight= body.padding + body.height(CSS或內(nèi)容撐的);

offsetHeight= clientHeight + border;

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

documentElement
clientHeight = window窗口大小 – 滾動(dòng)條大小

offsetHeight = body.offsetHeight + body.margin

scrollHeight= 內(nèi)容的高度(與body上的height無關(guān)),但最小值是documentElement.offsetHeight。

IE8
在IE8下,滾動(dòng)條的大小是17個(gè)像素。

body
clientHeight= body.padding + body.height(css設(shè)置或內(nèi)容撐大)

offsetHeight = clientHeight + body.border

scrollHeight =內(nèi)容的高度(與body上的height無關(guān)),但最小值是clientHeight。

documentElement
clientHeight = 窗口大?。ǔL動(dòng)條后)

offsetHeight = clientHeight + 滾動(dòng)條大小 + body.border

scrollHeight=內(nèi)容的高度(與body上的height無關(guān)),但最小值是body.offsetHeight+ margin。

元素上
offsetHeight = padding + border + height。

clientHeight = padding + height - scrollbar.width。

scrollHeight >= clientHeight

從結(jié)果分析,F(xiàn)F認(rèn)為scrollHeight的最小高度是clientHeight。

offsetLeft = 元素border左上角到畫布原點(diǎn)的距離 或 到offsetParent的borderbox頂部的距離。

IE7
在IE7中,body上設(shè)置的滾動(dòng)條并不是窗口的滾動(dòng)條,這個(gè)需要注意。

body
clientHeight= body.padding + height(css設(shè)置或內(nèi)容撐大)– body上的滾動(dòng)條。

offsetHeight= clientHeight + 滾動(dòng)條的大小+body.border。

scrollHeight=   內(nèi)容的高度(與body上的height無關(guān))。

documentElement
clientHeight = window視窗大小(與滾動(dòng)條的有無無關(guān))

offsetHeight = clientHeight。

scrollHeight = body.offsetHeight + border.margin

元素
offsetHeight = padding + border + height。

clientHeight = padding + height - scrollbar.width。

scrollHeight = padding + 內(nèi)容marginbox的高度

從結(jié)果分析,IE7認(rèn)為scrollHeight可以小于clientHeight。

offsetLeft = 元素border box左上角到父容器(不是offsetParent)的borderbox左上角的距離。

IE6
在IE6中,與IE7類似, body上設(shè)置的滾動(dòng)條并不是窗口的滾動(dòng)條。

body
clientHeight = body.padding + body.height

offsetHeight = body.clientHeight + body.border + body上滾動(dòng)條大小。

scrollHeight =內(nèi)容的高度(與body上的height無關(guān))。

documentElement
在IE6中,與IE7類似,雖然body上設(shè)置的滾動(dòng)條并不是窗口的滾動(dòng)條,但它的clientHeight和offsetHeight還算與其它瀏覽器想統(tǒng)一。

clientHeight = 窗口大?。ǔゴ翱跐L動(dòng)條大小后)

offsetHeight =clientHeight + body.border

scrollHeight = body.offsetHeight + body.margin

元素
offsetHeight = padding + border + height。

clientHeight = padding + height - scrollbar.width。

scrollHeight = padding + 內(nèi)容margin box的高度

從結(jié)果分析,IE6認(rèn)為scrollHeight可以小于clientHeight。

同理

clientWidth、offsetWidth 和scrollWidth 的解釋與上面相同,只是把高度換成寬度即可。

相關(guān)文章

  • javascript實(shí)現(xiàn)手機(jī)震動(dòng)API代碼

    javascript實(shí)現(xiàn)手機(jī)震動(dòng)API代碼

    一個(gè)新的API出來了。HTML5 (很快)將支持用戶設(shè)備振動(dòng)。這明顯是很有趣的事情,比如它可以用戶觸發(fā)提醒,提升游戲體驗(yàn),下面小編給大家整理javascript手機(jī)震動(dòng)api,需要的朋友可以參考下
    2015-08-08
  • ??一文帶你了解JavaScript多文件混淆加密

    ??一文帶你了解JavaScript多文件混淆加密

    JavaScript?代碼多文件混淆加密可以有效保護(hù)源代碼不被他人輕易盜取,這篇文章主要為大家介紹了JavaScript中混淆加密的實(shí)現(xiàn),需要的小伙伴可以參考下
    2023-11-11
  • JS圖片自動(dòng)輪換效果實(shí)現(xiàn)思路附截圖

    JS圖片自動(dòng)輪換效果實(shí)現(xiàn)思路附截圖

    這篇文章主要介紹了JS實(shí)現(xiàn)的圖片自動(dòng)輪換效果,有具體的實(shí)現(xiàn)思路及截圖,希望對(duì)大家學(xué)習(xí)有所幫助
    2014-04-04
  • TypeScript利用TS封裝Axios實(shí)戰(zhàn)

    TypeScript利用TS封裝Axios實(shí)戰(zhàn)

    這篇文章主要介紹了TypeScript利用TS封裝Axios實(shí)戰(zhàn),TypeScript封裝一遍Axios,能進(jìn)一步鞏固TypeScript的基礎(chǔ)知識(shí),需要的小伙伴可以參考一下
    2022-06-06
  • three.js實(shí)現(xiàn)3D視野縮放效果

    three.js實(shí)現(xiàn)3D視野縮放效果

    這篇文章主要為大家詳細(xì)介紹了three.js實(shí)現(xiàn)3D視野縮放效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • js如何打印object對(duì)象

    js如何打印object對(duì)象

    這篇文章主要介紹了js如何打印object對(duì)象,需要的朋友可以參考下
    2015-10-10
  • JS中事件冒泡和事件捕獲介紹

    JS中事件冒泡和事件捕獲介紹

    這篇文章主要為大家詳細(xì)介紹了JS中事件冒泡和事件捕獲的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • 分享50個(gè)超級(jí)有用的JavaScript單行代碼(推薦!)

    分享50個(gè)超級(jí)有用的JavaScript單行代碼(推薦!)

    JavaScript是一種腳本語言,是直接在瀏覽器運(yùn)行的,下面這篇文章主要給大家介紹了50個(gè)超級(jí)有用的JavaScript單行代碼的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-01-01
  • JS實(shí)現(xiàn)網(wǎng)頁自動(dòng)刷新腳本的方法

    JS實(shí)現(xiàn)網(wǎng)頁自動(dòng)刷新腳本的方法

    要自動(dòng)刷新網(wǎng)頁,你可以使用JavaScript腳本來實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于JS實(shí)現(xiàn)網(wǎng)頁自動(dòng)刷新腳本的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Java設(shè)計(jì)中的Builder模式的介紹

    Java設(shè)計(jì)中的Builder模式的介紹

    這篇文章主要介紹了從一個(gè)Person例子進(jìn)行分析重疊構(gòu)造器模式、Builder模式的使用場(chǎng)景以及運(yùn)用JavaBeans模式彌補(bǔ)重疊構(gòu)造器模式的不足
    2018-03-03

最新評(píng)論

嘉禾县| 涡阳县| 和顺县| 南康市| 峡江县| 黄冈市| 四会市| 西充县| 宜城市| 井冈山市| 邻水| 南丹县| 福鼎市| 涟水县| 宁晋县| 城固县| 宜兰市| 邯郸县| 定西市| 比如县| 双柏县| 平安县| 连州市| 牙克石市| 驻马店市| 大城县| 潞西市| 龙陵县| 临沭县| 沙田区| 前郭尔| 安吉县| 通城县| 灵石县| 黄冈市| 改则县| 和平县| 万源市| 隆化县| 洪湖市| 临桂县|