clientHeight、offsetHeight和scrollHeight的区别

clientHeight = content + padding, 不加溢出内容的高度 ,返回整数
offsetHeight = content + padding+border, 不加溢出内容的高度 ,返回整数
scrollHeight = content + padding+溢出内容的高度,不加border,返回整数

MDN建议获取精确的通过 element.getBoundingClientRect() 函数

亲测如下:


示例代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>body {margin: 0}.container {height: 200px;overflow: auto;background: pink;border: 100px solid #ccc;padding: 100px;box-sizing: content-box;}.content {height: 300px;background: rebeccapurple;box-sizing: content-box;color: #fff;display: flex;justify-content: center;align-items: center;;}</style>
</head>
<body><div class='container'><div class="content">子容器:300px</div></div><script>var testTarget = document.getElementsByClassName('container')[0];function log(element,type){console.log(type,element[type])}log(testTarget,'clientHeight');log(testTarget,'offsetHeight');log(testTarget,'scrollHeight');</script>
</body>
</html>

网上看了很多总不明白,自己亲自动手很清晰了,记录自己的探索过程,希望在前端道路越走越远,加油!

参考:
MDN | clientHeight

w3c规范 | clientHeight

【夯实基础 】 js获取的clientHeight、offsetHeight和scrollHeight的区别相关推荐

  1. 夯实基础js - 语句篇

    下面这些值将被计算出 false (also known as Falsy values): false undefined null 0 NaN 空字符串 ("") 当传递给条件 ...

  2. 夯实基础 js数据类型

    由于内存限制数值不可能 无穷大 最小值在Number.MIN_VALUE里面 最大值在 Number.MAX_VALUE里面 Infinity无穷 判断一个数在不在这个范围内 可以使用isFinite ...

  3. 彻底搞懂clientHeight、offsetHeight、scrollHeight的区别

    我们开发web代码的时候,经常回遇到各种高度的计算. 因为总是忘记几者之间得区别,每次都要现查,这次通过这篇文章彻底搞明白这几个长度的区别. 1.定义说明 条目 含义 图示 clientHeight ...

  4. JS获取对象属性的各种方式和区别(自身/原型属性、可枚举/不可枚举)

    对象的属性有自身属性和原型属性之分,自身属性是对象自己的属性,原型属性是存在于原型链上的属性. 可以用Object.prototype.hasOwnProperty()判断是自身属性还是原型属性.(i ...

  5. offsetHeight, clientHeight与scrollHeight的区别

    [size=xx-large][color=indigo]offsetHeight, clientHeight与scrollHeight的区别[/color][/size] [size=large][ ...

  6. html 获得div的高度,如何用js获取div不确定的自适应高度(currentStyle与offsetHeight)...

    设计网页时,一些元素(如div)因显示的内容多少事先不确定,所以不能固定高度,也就是让它根据内容的多少自动调整高度,即自适应高度. 对于div元素不确定的自适应高度,如何用js获取当前高度呢?一般有两 ...

  7. js基础总结——js 获取元素节点、js 绑定onclick事件、js 获取属性 修改属性值、js 获取子元素、js 改变css样式

    参考书籍:<JavaScript DOM编程艺术 第2版> 本博客代码的测试页面是:https://www.layui.com/ js dom操作 js 获取元素节点 一份document ...

  8. JS获取当前对象大小以及屏幕分辨率等...

    <!DOCTYPE html> <html> <head><meta charset="utf-8"/><meta name= ...

  9. js获取网页的各种高度

    原文:js获取网页的各种高度 网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: docum ...

最新文章

  1. template模板中插入自定义参数
  2. opencv 运动目标检测
  3. 虚函数(virtual)可以是内联函数(inline)吗?
  4. 【若依(ruoyi)】验证码
  5. 手写自己的MyBatis框架-核心对象
  6. 【许晓笛】 EOS 智能合约案例解析(2)
  7. tp 数据库查询排序_怎么进行数据库分库分表?
  8. kali linux中文乱码解决,kali-google-chrome中文乱码问题解决方法
  9. 今日恐慌与贪婪指数为73 贪婪程度有所上升
  10. python之函数用法basestring
  11. 跃迁 成为高手的技术
  12. Pr教程之打字机效果
  13. vue引入,两种组件库vant,vue-ydui变量冲突问题
  14. 2022南阳理工计科ACM计科TC招新热身赛题解
  15. C语言枚举变量定义,请问C语言枚举类型是什么意思
  16. python爬微信好友_用Python爬了自己的微信好友,原来他们是这样的人……-Go语言中文社区...
  17. ABAP ALV中自定义搜索帮助
  18. 无线传感网的MAC层协议
  19. LeetCode | 0017. Letter Combinations of a Phone Number电话号码的字母组合【Python】
  20. git 文件夹不显示红色图标和绿色图标的问题

热门文章

  1. import win32api出错
  2. 基于JAVA+SpringBoot+Vue+ElementUI中学化学实验室耗材管理系统
  3. 华为p40pro怎么没有计算机,数码教程资讯:华为p40pro支持PC模式吗
  4. 文件服务器搭建 xp,xp搭建文件服务器
  5. wintogo论坛_新一代垃圾佬的大辅助装-WIN TO GO
  6. Mybatis3源码全解析
  7. 汽车电控转向助力技术(EPS)
  8. c语言学生成绩管理系统设计分析,参阅:C语言学生成绩管理系统设计
  9. 2023年蔚来新能源汽车核心部件解密
  10. SEI、Envestnet、AssetMark2019年度观察 ——美国TAMP行业代表性公司对比分析