元素的样式属性是无法直接通过:对象.style.属性来获取的(这种方式只能获取内联样式)
补充:对象.style.属性="value" 设置的也是内联样式
用offset(位移)系列获取元素尺寸(无论样式是设置在属性中还是标签中都可以获取)
- offsetWidth:获取元素的宽
- offsetHeight:获取元素的高
- offsetLeft:就是这个元素左边框外,到自己的offsetParent对象的左边框内的距离
- offsetTop:就是这个元素上边框外,到自己的offsetParent对象的上边框内的距离
- offsetParent:获取距离当前元素最近的定位(position不等于static)父元素,如果没有定位父元素此时是body
offsetParent:
当元素自身有fixed定位时,生成的绝对定位元素相对于浏览器窗口进行定位,此时没有定位父级
- 元素自身有fixed定位,offsetParent的结果为null
- 元素自身无fixed定位,且父级元素都未经过定位,offsetParent的结果为<body>
- 元素自身无fixed定位,且父级元素存在经过定位的元素,offsetParent的结果为离自身元素最近的经过定位的父级元素
- <body>元素的parentNode是null(document.body.offsetParent;//null)
offsetWidth/Height:
offsetWidth = width+padding+border
offsetHeight = height+padding+border
举例1:
举例2:
案例3:
案例4:
补充:1.直接通过document获取元素
2.图片跟随鼠标移动(案例)——有bug,先了解一下两个属性