- 首页 > it技术 > >
offsetHeight|offsetHeight,clientHeight,innerHeight,outerHeight,scrollHeight区别
- 元素偏移区域
- offsetWidth (border + padding+width)
- offsetHeight (border + padding + height)
- offsetLeft (元素距离定位父级左内边线的水平距离)
- offsetTop (元素距离定位父级上内边线的垂直距离)
- offsetParent (获取元素定位父级,父级加除了position:inherit|initial|static之外的定位属性则会得到该父级,否则一直往上找,直到找到有定位的祖先级或body为止,如果其父级有position:inherit继承并且继承到定位属性,则定位父级也为其父级元素)
- firefox并没有考虑固定定位的问题,在加了固定定位的元素,火狐返回body,其他浏览器返回null
- 在查找元素定位父级的时候,当元素的父级有除了static,initial,inherit(特殊情况除外)外的定位,则该元素的定位父级,为该父元素,否则会一直往上找,直到找到有除了以上定位的元素或者找到body停止
- 可视区域
- clientHeight (padding + height)不包含滚动条部分,也就是说不包含隐藏的部分
- clientWidth (padding + width)不包含滚动条部分,也就是说不包含隐藏的部分
- clientTop (上边框的width)
- clientLeft (左边框的width)
- 滚动区域
- scrollwidth (padding + width)包含水平滚动条部分,也就是内容区域的宽度,包含被隐藏的部分
- scrollHeight (padding + height)包含垂直滚动条部分,也就是内容区域的高度,包含被隐藏的部分
- 以上两个属性如果内部有隐藏部分,则它们的值为子元素的margin + padding + border + (width | height)
- scrollLeft (滚动条滚动的水平距离,默认为0)
- scrollTop (滚动条滚动的垂直距离,默认为0)
- 浏览器窗口大小
- window.innerWidth (浏览器窗口宽度,不包含工具栏,菜单等,仅仅是可视区域dom的width)
- window.innerHeight (浏览器窗口高度,不包含工具栏,菜单等,仅仅是可视区域dom的height)
- window.outerWidth (浏览器窗口宽度,包含工具栏、菜单等,整个浏览器的width)
- window.outerHeight (浏览器窗口高度,包含工具栏、菜单等,整个浏览器的height)
- IE有兼容问题,可用document.documentElement.clientWidth|clientHeight代替
推荐阅读