offsetParent
HTMLElement.offsetParent 是一个只读属性,返回一个指向最近的(指包含层级上的最近)包含该元素的定位元素或者最近的 table,td,th,body元素。当元素的 style.display 设置为 “none” 时,offsetParent 返回 null。offsetParent 很有用,因为 offsetTop 和 offsetLeft 都是相对于其内边距边界的。
offsetParent(如果body和html直接的margin被清掉)
本身定位为fixed
==> offsetParent:null(不是火狐)
==> offsetParent:body(火狐)
本身定位不为fixed
父级没有定位
==> offsetParent:body
父级有定位
==> offsetParent:定位父级
haslayout
ie7以下,如果当前元素的某个父级触发了haslayout,
那么offsetParent就会被指向到这个触发了layout特性的父节点上
注意点
HTMLElement.offsetTop 为只读属性,它返回当前元素相对于其 offsetParent 元素的顶部内边距的距离。
1.分清parentNode和offsetParent的区别
parentNode:直接父级
offsetParent:类似于css的包含块
2.offsetParent的作用
offsetLeft 和 offsetTop 是参照于offsetParent的内边距边界的
3.dom里所有的元素都是有offsetLeft 和 offsetTop的
getBoundingClientRect
* getBoundingClientRect:一个元素四个角!的相对位置
* getBoundingClientRect + 滚动条滚动时元素滚动的距离---> 绝对位置
*
代表元素border-box的尺寸
height
width
元素左上角的相对位置
left
top
元素右下角的相对位置
right
bottom