js盒子模型

2017-06-14  本文已影响0人  web前端ling

盒子模型

盒子模型

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的偏移量)

上一篇下一篇

猜你喜欢

热点阅读