js盒子模型

盒子模型

盒子模型

1.CSS盒子模型由四部分構成:手動設定的寬高,padding,border,margin

2.JS盒子模型:可以通過系統提供的方法,來獲取元素的樣式;·

3.JS盒子模型中系統提供的屬性和方法:

1)client系列:clientWidth ?clientHeight clientLeft clientTop;

2) offset系列:offsetWidth offsetHeight offsetLeft offsetTop offsetParent

3) scroll系列:scrollWidth scrollHeight scrollLeft scrollTop;

4.關于父級:

結構父級 parentNode

在結構父級中,最大的元素是html元素

最大的節點是document節點

定位父級 offsetParent

在定位里面最大的是body元素

5.逐個解讀JS盒子模型的方法:

1)client系列:整個盒子,自己設定的寬跟高,不包括邊框

clientWidth/clientHeight:手動設定的寬度/高度+左右的padding/上下的padding

clientLeft/clientTop:左邊框的寬度/上邊框的寬度

跟內容溢出無關;

2)offset系列:整個盒子的寬高,包括邊框

- offsetWidth/offsetHeight:clientWidth/clientHeight+左右border/上下border; ? ?- offsetLeft/offsetTop:當前元素的外邊框(不算自己的邊框),到定位父級的內邊框之間的距離; ? ?跟內容溢出無關;

- 偏移參照----------定位父級offsetParent3)scroll系列:跟內容溢出有關:

當內容沒有溢出的情況:就是整個盒子的寬高

- ?scrollHeight:等于clientHeight ?- ?scrollWidth等于clientWidth ?- ?scrollTop:被瀏覽器卷去的高度 ? ?當內容溢出的情況:

- ?scrollHeight:溢出內容的高度+上padding,約等于上padding+真實內容的高度; ?- ?scrollWidth:溢出左右的寬度+左右padding ?- ?scrollTop:被瀏覽器卷去的高度 ?- ?scrollLeft:被瀏覽器卷去的左右的高度(左右滾動條,可滾動區域(左右溢出部分) ? ?約等于:

1)當內容溢出時,不同瀏覽器得到的值不同;

2)同一瀏覽器下,是否設置overflow:hidden得到的值也不同;

- ?window.onscroll(滑動滾輪的時候,多次觸發的可視窗口的滾輪條 ?)

- onload ?頁面加載之后立即執行 加載成功 ?- onerror 頁面加載失敗6:關于js盒子模型的小問題

1)以上屬性只能拿到復合值;無法拿到單獨的值--getCss(獲取非行間樣式)

2)以上屬性只能拿到整數,無法拿到小數--解決不了,四舍五入

3)關于js盒子模型的封裝--win;

4)offsetLeft只能求出當前元素的外邊框,距離定位父級的內邊框之間的距離,無法得到到body的距離

封裝 offset(求的是元素到body的偏移量)

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容