JS三大家族之offset家族
offset家族介绍
offset这个单词本身是–偏移,补偿,位移的意思。
js中有一套方便的获取元素尺寸的办法就是offset家族;
offsetWidth、offsetHight 、offsetLeft、offsetTop以及offsetParent
共同组成了offset家族。
offset属性家族:offsetWidth offsetHeight offsetLeft offsetTop
offset属性家族(offsetWidth offsetHeight)获取元素的宽高的特点:
1.可以获取行内属性 也可以获取行外属性
2.获取的属性值是nummber类型 而且不带单位
3.获取到的是页面显示的元素的真实宽高(width/height + padding + border)
offsetWidth和offsetHight (检测盒子自身宽高+padding+border)
这两个属性,他们绑定在了所有的节点元素上。获取之后,只要调用这两个属性,我们就能够获取元素节点的宽和高。
offset宽/高 = 盒子自身的宽/高 + padding +border;
offsetWidth = width+padding+border;
offsetHeight = Height+padding+border;
offsetParent (检测父系盒子中带有定位的父盒子节点)
offsetParent:获取元素最近的父级定位元素,返回该对象的父级 (带有定位)
1.如果元素自身是固定定位,那么获取到的父级为null
2.如果元素自身不是固定定位(absolute relative) 那么就往上找父级定位,如果所有的父级元素
都没有定位,那么找到的定位父级就是body。
3.body的定位父级为null
因为偏移量家族的Element的属性,所以每一个元素都具有offsetParent这个属性,它用来获取自己的祖先元素中,并且是已经定位的祖先元素,还有优先获取距离自己最近的元素,如果没有定位的祖先元素了,就是以body为其参考,获取body的标签。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<style type="text/css">
#box{
width