三大系列
offset-位移
scroll-卷页
client-可视区
js中有一套方便的获取元素尺寸的办法:offset系列
offset常用属性(5个)
###offsetWidth和offsetHeight————(检测盒子自身宽高+padding+border)
###offsetLeft和offsetTop————(检测距离父盒子有定位的左/上面的距离)
###offsetParent————(检测父系盒子中带有定位的父盒子节点)
offsetwidth和offsetheight
offset宽/高 = 盒子自身的宽/高 + padding +border;
offsetWidth = width+padding+border;
offsetHeight = Height+padding+border;
offsetLeft和offsetTop
offsetLeft:
-
返回距离上级盒子(带有定位)左边的位置
-
如果父级都没有定位则以body为准
(从父级的padding开始算,父级的border不算)
###offsetTop和style.top的区别
-
最大区别在于offsetLeft可以返回没有定位盒子的距离左侧的位置。 而 style.top不可以
-
offsetTop返回的是数字(值是四舍五入取整),style.top返回的是字符串(除了数字外还带有单位px)
-
offsetTop只读,而style.top可读写
-
style.top只能获取行内式样式。如果没有给 HTML 元素指定过 top 样式,则style.top 返回的是空字符串。
offsetParent
返回该对象的父级
-
如果当前元素的父级元素没有进行CSS定位(position为absolute或relative,fixed),offsetParent为body。
-
如果当前元素的父级元素中有CSS定位,offsetParent取最近的那个父级元素