Dom:height和width

1:window對(duì)象的寬高:window.innerHeight ?window.outerHeight ?window.innerWidth ?window.outerWidth

window.innerheight

inner指的是打開(kāi)的瀏覽器窗口的可視寬高,包括滾動(dòng)條但不包括項(xiàng)目欄這些,outer是整個(gè)窗口的高度.全屏的時(shí)候就是screen.height.tips:隨著窗口大小的調(diào)整這四個(gè)值會(huì)改變.調(diào)整窗口用resizeBy()和resizeTo();ie8以下不支持這四個(gè)值,同時(shí)使用下面第三點(diǎn)里面的document.documentElement(html tag) 或 document.body (body tag)(與 IE 的版本相關(guān))的 clientWidth 和 clientHeight 屬性替代inner的兩個(gè)值而outer的兩個(gè)值沒(méi)有替代屬性.兼容寫(xiě)法是:var height=window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight.

2,顯示器的寬高:screen.height ?screen.width ?screen.availHeight ?screen.availWidth ?screenTop ?screenLeft

screen-MDN

screen.height:返回瀏覽器窗口可占用的最大寬度,全屏模式下是顯示器的寬高,如果有系統(tǒng)的任務(wù)欄可能就要減掉這個(gè)的寬高.和操作系統(tǒng)有關(guān).

screen.availHeight,screen.availWidth:瀏覽器窗口可以在屏幕上占用的最大寬高.這個(gè)和瀏覽器以及操作系統(tǒng)的實(shí)現(xiàn)有很大的關(guān)系.在mac下面是screen.height減去任務(wù)欄的高度.

screenTopscreenLeft:這兩個(gè)值是瀏覽器窗口距離屏幕左邊和上班的距離,如果瀏覽器全屏,為0.

3,dom元素的寬高:client offset ?scroll各有四個(gè)屬性,一對(duì)寬高和一對(duì)上左.

1.element.clientHeight:元素的內(nèi)容加上padding的高度,和為了兼容ie的body和html標(biāo)簽的clientHeight是從document對(duì)象上繼承的屬性,最終作用于元素上面的.還有一對(duì)clientTop和clientLeft是用在代碼里面讀取元素邊框,也就是border的寬度的作用.

2.element.offsetHeight:整個(gè)元素內(nèi)容可視區(qū)域的大小,包括邊框和滾動(dòng)條.offsetTop和offsetLeft有一個(gè)父節(jié)點(diǎn),如果父節(jié)點(diǎn)沒(méi)有進(jìn)行absolute或者relative的css定位,則offsetparent是body元素,如果父元素有css定位,則offsetparent是該最近的父元素.在不同的瀏覽器中這個(gè)offset值不一樣.火狐是最大的,父margon+父padding+子border+子margin;在chrome和ie8及以上,少了border,在ie8以下,還少了父margin.

HTMLElement.offsetLeft是一個(gè)只讀屬性,返回當(dāng)前元素左上角相對(duì)于HTMLElement.offsetParent節(jié)點(diǎn)的左邊界偏移的像素值。

對(duì)塊級(jí)元素來(lái)說(shuō),offsetTop、offsetLeft、offsetWidth及offsetHeight描述了元素相對(duì)于offsetParent的邊界框。

然而,對(duì)于可被截?cái)嗟较乱恍械男袃?nèi)元素(如span),offsetTop和offsetLeft描述的是第一個(gè)邊界框的位置(使用Element.getClientRects()來(lái)獲取其寬度和高度),而offsetWidth和offsetHeight描述的是邊界框的維度(使用Element.getBoundingClientRect來(lái)獲取其位置)。因此,使用offsetLeft、offsetTop、offsetWidth、offsetHeight來(lái)對(duì)應(yīng) left、top、width 和 height 的一個(gè)盒子將不會(huì)是文本容器 span 的盒子邊界。

3.element.scrollHeight:元素內(nèi)容的高度,包括溢出的部分.Element.scrollTop屬性可以設(shè)置或者獲取一個(gè)元素距離他容器頂部的像素距離。一個(gè)元素的scrollTop是可以去計(jì)算出這個(gè)元素距離它容器頂部的可見(jiàn)高度。當(dāng)一個(gè)元素的容器沒(méi)有產(chǎn)生垂直方向的滾動(dòng)條,那它的scrollTop 的值默認(rèn)為0.一般是整個(gè)頁(yè)面,也就是document.body.scrollTop

tips:寬度是同樣的意義.所有DOM元素都有上述3大屬性,只需要給它固定大小并設(shè)置overflow:scroll即可表現(xiàn)出來(lái).最后,要處理這些寬高的問(wèn)題,用jquery的封裝方法來(lái)處理兼容性的問(wèn)題.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • HTML精確定位:scrollLeft,scrollWidth,clientWidth,offsetWidth s...
    brightranger閱讀 1,130評(píng)論 0 1
  • Window和document對(duì)象的區(qū)別 window對(duì)象window對(duì)象表示瀏覽器中打開(kāi)的窗口window對(duì)象是...
    FConfidence閱讀 2,367評(píng)論 0 5
  • javascript的offset、client、scroll在使用過(guò)程中非常頻繁,接下來(lái)將對(duì)此進(jìn)行一一介紹,需要...
    呱呱呱呱儂閱讀 1,143評(píng)論 0 0
  • 一、JS前言 (1)認(rèn)識(shí)JS 也許你已經(jīng)了解HTML標(biāo)記(也稱為結(jié)構(gòu)),知道了CSS樣式(也稱為表示),會(huì)使用HT...
    凜0_0閱讀 2,933評(píng)論 0 8
  • 安全感,我也缺少,尤其是來(lái)自于看不見(jiàn)摸不著的關(guān)系時(shí),感情是掌控不了的,feel只能通過(guò)feel。 最近事比較多,沮...
    與君共度時(shí)艱閱讀 257評(píng)論 0 0

友情鏈接更多精彩內(nèi)容