JavaScript盒子属性

238 阅读2分钟

一张图搞定JS盒子属性

1.offsetLeft / offsetTop

  • 当前元素距离其父级参照物的左偏移和上偏移
  • 父级元素不是父级参照物。
  • 偏移的计算是从当前元素的外边框到父级参照物的的内边框。
  • 父级参照物 同一平面最外层的元素是所有内层元素的父级参照物
  • 默认情况下,所有的元素在不设置浮动的情况下,所有的元素的父级参照物是BODY
  • 如果元素设置了定位,那么该元素及其内容会形成一个新的平面,该元素为内部元素的父级参照物。

2.offsetParent

  • 父级参照物

3.clientWidth/clientHeight

可视化窗口的宽度和高度 CONTENT+PADDING(在怪异盒子模型下)

  • 如果内容有溢出并不会影响可视化窗口的宽度和高度
  • 在获取浏览器的宽高的时候,是获取浏览器在电脑上显示的一屏幕的宽高

4.offsetWidth/offsetHeight

在clientWidth/clientHeight的基础上加上左右边框的大小即可,所以也不受内容溢出的情况

5.clientLeft/clientTop

可视窗口的左边框 上边框

  • 内容是否溢出对其没有影响
  • 没有获取可视窗口的右下边框

6.scrollWidth/scrollHeight

可滚动的宽度 可滚动的高度

  • 内容没有溢出的情况:scrollWidth 和scrollHeight 的结果和clientWidth/clientHeight的结果一样
  • 内容有溢出的情况:scrollWidth 和scrollHeight 的结果包含了溢出内容的宽和高。在不同的浏览器中,对内容的渲染机制不一样。设置了overflow,俩者都会对结果产生影响。即整个页面的真实宽高。

7.scrollLeft/scrollTop

横向滚动条卷去的宽度 竖向滚动条卷去的高度

  • 最小值为0,是在没有滚动的情况下
  • 竖向最大值为:scrollHeight-cilentHeight 横向滚动最大值: scrollWidth-cilentWidth
  • 唯一俩个是可读可写的属性,通过修改对应的值来控制滚动条。