JS中用到的各种宽度

142 阅读1分钟

在js中,会用到各种宽度高度的计算,有时傻傻分不清楚,先记录一下常用的宽高值。 假设我们有一个div:

    <body>
        <div class="oneDiv">这是一个div></div>
    </body>

然后div设置一些样式:

    .oneDiv {
        width: 200px;
        height: 200px;
        padding: 10px;
        background-color: red;
        border: 5px solid black;
        margin: 20px;

下面计算各种宽高:

  1. clientWidth和clientHeigh、clientTop和clientLeft
    clientWidth = width + 左右padding
    clientHeight = height + 上下padding
    clientTop = 上边框的宽度
    clientLeft = 左边框的宽度
  2. offsetWidth和offsetHight、offsetTop和offsetLeft
    offsetWidth = width + 左右padding + 左右border
    offsetHeight = height + 上下padding + 上下border
    offsetTop: 当前元素上边框外边缘到最近的已定位的父级上边框内边缘的距离。如果父级都没有定位,则是到body的上边框内边缘距离
    offsetLeft: 当前元素左边框外边缘到最近的已定位的父级左边框内边缘的距离。如果父级都没有定位,则是到body的左边框内边缘距离
  3. scrollWidth和scrollHeight、scrollTop和scrollLeft
    scrollWidth:返回元素的整体宽度,包括可视区域宽度+被隐藏区域宽度
    scrollHeight: 返回元素的整体高度,包括可视区域高度+被隐藏区域高度
    scrollLeft: 返回元素左边缘与视图之间的距离,这里的视图指的是元素的内容(包括子元素以及内容)
    scrollTop: 返回元素上边缘与视图之间的距离

最后,附上一张经典图:

各种距离.webp