1. 程式人生 > >javascript基礎學習系列-DOM盒子模型常用屬性

javascript基礎學習系列-DOM盒子模型常用屬性

ica ace img 根據 盒子模型常用屬性 平面 html firefox sta

最近在學習DOM盒子模型,各種屬性看著眼花繚亂,下面根據三個系列來分別介紹一下:

client系列

  1. clientWidth :width+(padding-left)+(padding-right)—>和內容溢出無關系
  2. clientHeight:height+(padding-top)+(padding-bottom)—>和內容溢出無關系
  3. clientLeft:左邊框的寬度
  4. clientTop:上邊框的高度(border[Left/Top]Width)

offset系列

  1. offsetParent:當前元素的父級參照(父級參照物),在同一個平面中,最外層的元素是裏面所有元素的父級參照物(和html層級結構沒有必然聯系)
    a)一般來說一個頁面中所有元素的父級參照物都是body
    b)body的父級參照物->document.body.offsetParent->null
    c)可以通過position:absolute/realative/fixed改變父級參照物
    我們可以總結一下規律:

position為fixed元素是沒有offsetParent,但firefox統一返回body。
position為absolute, relative的元素的offsetParent總是為其最近的已定位
的元素,沒有找最近的td,th元素,再沒有找body。
position為static的元素的offsetParent則是先找最近的td,th元素,再沒有找body。
body為最頂層的offsetParent。

  1. offsetWidth/offsetHeight:clientWidth/ clientHeight+左右/上下邊框 —>和內容溢出無關系
  2. offseTop/offsetLeft:當前元素的外邊框距離父級參照物內邊框的偏移量

scroll系列

  1. scrollWidth/scrollHeight:和clientWidth/clientHeight一樣(前提是:內容無溢出)

若容器內容有溢出:獲取結果是如下規則:
scrollWidth:真實內容的寬度(包含溢出)+左填充
scrollHeight:真實內容的高度(包含溢出)+上填充。

  1. scrollLeft/scrollTop(可讀寫 ):滾動條卷曲的寬度和高度

scrollTop有兩個臨界值,最大值和最小值
滾動最小值:0,dom.scrollTop=一個小於0的數,滾動條也是滾動到頂部
滾動最大值:scrollHeight-clientHeight ,dom.scrollTop=一個大於(scrollHeight-clientHeight)的數,滾動條也是在最底部

通過以上我畫了一張圖,對照圖看頓時你會覺得恍然大悟!請看下圖:

技術分享圖片



javascript基礎學習系列-DOM盒子模型常用屬性