offsetHeight,clientHeight,innerHeight,outerHeight,scrollHeight区别

本文详细介绍了前端开发中涉及的几个重要属性:offsetHeight, clientHeight, innerHeight, outerHeight, scrollHeight的区别。包括元素的偏移区域、可视区域和滚动区域的定义,以及如何计算各个属性的值。同时提到了浏览器兼容性问题,如Firefox对固定定位元素的处理和IE中的一些特殊处理方式。" 123475539,11251207,四数之和的高效解法:双指针法,"['算法', '排序算法', 'LeetCode']
  • 元素偏移区域
    • 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代替
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值