关于clientHeight,offsetHeight等小笔记

微信小程序-屏幕高度分析详解 微信小程序高度 阅读详情

关于clientHeight,offsetHeight等小笔记

标签: 前端
  2891人阅读  评论(0)  收藏  举报
  分类:

之前遇到一个问题:关于clientHeight,offsetHeight,scrollHeight,以及height,contentHeight(width也一样)的区别。因为不太分的清,就去找了一些资料,下面是一些笔记及个人理解(o(╯□╰)o不一定完全正确,望指正) 
这里有参考http://stackoverflow.com/questions/21064101/understanding-offsetwidth-clientwidth-scrollwidth-and-height-respectively, 
https://developer.mozilla.org/en-US/docs/Web/API/Element/clientWidth等等。

这里借用一下别人的图: 
这里写图片描述 
注意这个图中有个问题就是paddingBottom和paddingRight,画的不太对(个人感觉)。另外注意在chrome中paddingBottom是呈现在滚轮部分的底部的,而在别的浏览器则不是这样╮(╯_╰)╭。

这里可以看一下粗略对比: 
chrome: 
这里写图片描述 
Firefox: 
这里写图片描述

1.首先,有一点要明白,就是如果你在css中设置了height值,然后你在浏览器中调试的时候可能会发现,当你鼠标选中那个元素的时候,它的值可能不等于你之前设置的height的值。 
例如:(在chrome浏览器)

 #div1{
            width:100px;
            height:100px;
            overflow: auto;
            background-color: yellow;
            padding:10px;
            border:4px solid red;
        }
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

结果是这样的: 
这里写图片描述 
显然,这里显示出来的内容区域变为了83*83。这是为什么….这个问题纠结了我好久,巴特,其实这个答案很简单╮(╯_╰)╭….. 
这是因为设置的那cssheight包括了scorll bar的宽度…..我们看见的那块内容区域: 
contentHeight = cssHeight- scorllBarHeight 
并且我们可以看出这里scorllBarHeigh=100-83=17

2.再来看clientHeight。这个其实就是可视化区域,包括content,padding但不包括border,scroll bar …他不能从css直接得到,它和scroll bar 的宽度有关 
再看刚才的那个例子,我们讲它打印出来:

console.log(div1.clientHeight);
   
  • 1

这里写图片描述

可以看到结果是103。 
那么它是怎么的出来的呢? 
它的计算式子可以这么写: 

clientHeight = cssHeight+ paddingTop+ paddingBottom- scrollBarWidth 

这里也就是clientWidth = 100+10+10-17=103 
嘛,根据第1点我们知道,它实际上也是 

clientWidth =contentHeight+ paddingTop+ paddingBottom 

**3.**offsetHeight的话,其实就是包括border的可视化盒子的全部高度。也就是书,包括了content,padding,scroll bar ,border。也可以说是cssHeight,padding,border。那么上面那个例子中,

 console.log(div1.offsetHeight);
   
  • 1

这里写图片描述 
结果是128,可以表示为 

offsetHeight=cssHeight+paddingTop+paddingBottom+borderTop +borderBottom 

这里也就是offsetHeight=100+10+10+4+4=128

**4.**scrollHeight是包含那些隐藏在滚轮以外区域的盒子内容,它和clientHeight类似只是多包涵了一些隐藏的内容区域。它是根据内容的大小来定的,不能从css中直接获得。

ps:这里有一点需要注意:在chrome中,如果js里返回一个height那么,这个height的值实际上就是content的值,也就是减去了scorll bar ,而不是之前css设置的height。 
用之前的那个例子:在chrome中

 console.log(getComputedStyle(div1).height);
   
  • 1

这里写图片描述

显然结果是83,而在IE11中

console.log(div1.currentStyle.height);
   
  • 1

这里写图片描述

结果是100。。

 
从零构建个性化AI助手:基于Mem0与本地大模型的记忆化实践 本文详细介绍了如何利用Mem0与本地大模型构建个性化AI助手,实现记忆化应用结构的实践方法。从开发环境搭建、记忆存储机制到个性化交互实现,提供了完整的解决方案和代码示例,帮助开发者在本地环境中创建能记住用户习惯和偏好的智能助手。 阅读详情

相关推荐

嵌入式开发避坑指南:手把手教你用STM32CubeMX配置W9825G6KH SDRAM(含时序参数详解)

本文详细介绍了如何使用STM32CubeMX配置W9825G6KH SDRAM,包括硬件连接检查、CubeMX初始化步骤、时序参数优化及稳定性问题排查。通过实测波形分析和案例分享,帮助开发者避免常见配置错误,提升嵌入式系统性能与稳定性。

weixin_42542669的博客 197

JavaScript-offset家族,前端架构师必备框架技能核心笔记

由于篇幅限制,pdf文档的详解资料太全面,细节内容实在太多啦,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!CodeChina开源项目:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!

2401_83974117的博客 1131

避开这些坑!Kaggle数据集下载常见问题及解决方案(含Header Editor插件配置)

本文针对Kaggle数据集下载过程中的常见难题,提供了系统性的解决方案。重点解决了验证码无法显示、API安装失败、密钥文件配置错误及下载命令执行问题,并详细介绍了使用Header Editor插件配置请求头以绕过验证码障碍的实战方法,帮助用户高效获取数据。

weixin_29043895的博客 301

【JavaScript】clientWidth 和 clientHeight 与 offsetWidth 和 offsetHeight 属性详解

和是用于获取元素的内部宽度和高度的属性,通常用于测量内容区域的大小。:返回元素的内部宽度,包括内边距(padding),但不包括边框(border)、外边距(margin)和水平滚动条(如果有的话)。返回的值是整数。:与类似,返回元素的内部高度,包含内边距,不包括边框、外边距和水平滚动条。这两个属性常用于获取元素的实际可视区域,尤其是在处理带有内边距的容器时,可以帮助更好地控制内容的显示效果。和是更为完整的宽高属性,包含了元素的边框和滚动条。

lph159的博客 2408

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount()【已解决】

围炉夜敲的博客 1万+

《矩阵论》学习笔记(四):4.2 矩阵的QR分解

《矩阵论》学习笔记(四):4.2 矩阵的QR分解 文章目录《矩阵论》学习笔记(四):4.2 矩阵的QR分解一. Givens矩阵与Givens变换1.1. 概念与理解1.2. Givens矩阵求解方法二. Householder矩阵与Householder变换2.1. 概念与理解2.2. Householder矩阵求解方法2.3. Givens变换与Householder变换的关系三. 矩阵的QR...

shine的博客 3678

一文读懂offsetHeight/offsetLeft/offsetTop/offsetWidth/offsetParent

1.offsetHeight:获取元素的高度(在垂直方向上占用的空间大小),offsetWidth = 可视区的width+左右padding+左右边框 = 450+(10*2)+......

weixin_61597234的博客 2958

基于AutoDL复现A-LOAM

Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。在autodl上面租服务器,地区我租的重庆A区的,GPU我选择的是RTX4090,基础镜像选择的是Miniconda / conda3 / 3.8(ubuntu20.04)/11.6。在AutoDL中我使用的方式是先将该数据集先下载到自己的电脑上,然后再上传到虚拟机中。用MobaXterm解决该问题!搜到的一个解决方式:该问题属于ceres版本问题,将A-LOAM下的。

m0_61281610的博客 1942

JavaScript 和前端开发中,offsetTop、offsetHeight、clientHeight , scrollHeight,offsetParent,scrollTop

​**距离当前元素最近的非静态定位​(即position不是static)的祖先元素如果所有祖先都是静态定位,则返回<body>元素对于<body>元素或隐藏元素(),返回null计算元素的绝对位置理解元素的定位上下文实现自定义的定位和布局逻辑但在现代前端开发中,应根据具体需求考虑使用更现代的 API 替代方案。​**scrollTop​可读可写​:可以获取当前滚动位置,也可以设置新的滚动位置​表示内容​:元素内容顶部到可视区域顶部的距离(像素)​范围​:从0(顶部)到(底部)

chaoxxggg的博客 1451

DeerFlow 系列教程 第十二篇 | Tools 工具体系——从内置工具到 MCP 扩展

文件此工具允许 Agent 在运行时创建新的自定义 Agent。@toolsoul: str, # SOUL.md 的完整内容description: str, # Agent 的一行描述创建流程从获取agent_name写入配置文件(包含 name 和 description)写入灵魂文件SOUL.md(定义 Agent 的人格和行为)更新中的错误回滚MCP(Model Context Protocol)是一种标准协议,允许 AI Agent 连接外部工具服务器。DeerFlow 通过。

weixin_43674738的博客 181

【Simulink教程案例7】基于Simulink的滑模控制器设计与实现

欢迎订阅滑膜控制是一种变结构控制策略,其和常规控制方法的主要区别在于控制的不连续性,即一种使系统结构随时间变化的开关特性。所以,滑膜控制器也叫做变结构控制器,其本质是一类特殊的非线性控制器,并且这种非线性为不连续性。滑膜控制器和其他控制方式最大的区别在于其结构的不固定性,在其工作过程中,系统当前的状态会发生变化,使得系统按照预先设置的“滑动模态”的状态轨迹运动。正是由于这个特点,滑膜控制器具有快速响应的优点。滑模控制的基本定义如下所示:1).穿越切换面上的某个点;2).从切换面上的某个点离开;

FPGA/MATLAB学习教程/源码/项目合作开发 3240

clientHeight、offsetHeight 区别 笔记

一张图 说明全部 clientHeight和clientWidth用于描述元素内尺寸,是指元素内容+内边距大小,不包括边框(低版本IE下实际包括)、外边距、滚动条部分 offsetHeight和offsetWidth用于描述元素外尺寸,是指元素内容+内边距+边框,不包括外边距和滚动条部分 clientTop和clientLeft返回内边距的边缘和边框的外...

weixin_30367543的博客 175

STM32F103C8T6驱动DHT11温湿度传感器程序

本程序基于 STM32F103C8T6 微控制器,通过 GPIO 模拟单总线通信时序实现对 DHT11 温湿度传感器的数据采集,主机采用拉低数据线的方式触发传感器启动,并通过检测高电平持续时间区分逻辑“0”和“1”,依次读取湿度和温度的整数数据及校验位,经过校验后将有效结果存入缓存数组,实现对环境温湿度的周期性测量与处理。

加斯顿工程师的博客 200

web 开发笔记“height clientHeight scrollHeight offsetHeight”

本人学习东西总是喜欢从概念入手,所以遇到height clientHeight scrollHeight offsetHeight 时, 我首先查询了一下他们的中文翻译。 height:高度,html元素高度属性,这个值你设置的是多少就是多少,没什么解释的 clientHeight:都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度, 一般是最后一

yefengyaogang的专栏 871

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

前端学习笔记(21)之JS中的offsetWidth、offsetHeight、clientWidth、clientHeight等等的详细介绍

offsetWidth //返回元素的宽度(包括元素宽度、内边距和边框,不包括外边距) offsetHeight //返回元素的高度(包括元素高度、内边距和边框,不包括外边距) clientWidth //返回元素的宽度(包括元素宽度、内边距,不包括边框和外边距) clientHeight //返回元素的高度(包括元素高度、内边距,不包括边框和外边距) style.width //返回元素的宽度(包括元素宽度,不包括内边距、边框和外边距) st

前端下午茶 1106

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

笔记:dom元素各种宽度和高度,getBoundingClientRect,clientWidth,clientHeight,offsetWidth,offsetHeight

dom.clientwidth

YanHSama的博客 3456

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop

转载自:https://www.imooc.com/article/17571网页可见区域高:document.body.clientHeight网页正文全文高:document.body.scrollHeight网页可见区域高(包括边线的高):document.body.offsetHeight网页被卷去的高:document.body.scrollTop屏幕分辨率高:window.screen...

qq_35430000的博客 17万+

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

日常开发web代码得时候,总是遇到各种高度的计算. 因为总是忘记几者之间得区别,每次都要现查,这次通过这篇文章彻底搞明白这几个长度的区别. 1.定义说明 条目 含义 图示 clientHeight 元素的像素高度,包含元素的高度+内边距,不包含水平滚动条,边框和外边距 offsetHeight 元素的像素高度 包含元素的垂直内边距和边框,水平滚动条的高度,且是一个整数 ...

十八酱君 3万+

clientHeight和offsetHeight

clientHeight:包括padding但不包括border、水平滚动条、margin的元素的高度。对于inline的元素这个属性一直是0,单位px,只读元素。 offsetHeight:包括padding、border、水平滚动条,但不包括margin的元素的高度。对于inline的元素这个属性一直是0,单位px,只读元素。 style.height //返回元素的高度(包括元素高度,不包括内边距、边框和外边距) clientHeight //返回元素的高度(包括元素高度、

树上骑个猴的博客 7473

Js——ScrollTop、ScrollHeight、ClientHeight、OffsetHeight汇总

一直对ScrollTop、ScrollHeight、ClientHeight、OffsetHeight这些内容傻傻分不清楚,今天整体下。 scrollHeight scrollHeight含有scroll当然这个高度与滚动相关。 读写:只读 描述:包括overflow样式属性导致的视图中不可见内容,没有垂直滚动条的情况下,scrollHeight值与元素视图填充所有内容所需要的最小值c...

CaseyWei 7227

offsetHeight, clientHeight与scrollHeight的区别

在网上搜了一下,结论非常笼统,讲IE从不讲版本,因此自己做了测试并上传结论。以下结论皆是在标准模式下测试通过的,没有测试quirk模式。 clientHeight 大部分浏览器对 clientHeight 都没有什么异议,都认为是内容可视区域的高度,也就是说页面浏览器中可以看到内容的这个区域的高度,即然是指可看到内容的区域,滚动条不算在内。但要注意padding是算在内。其计算方式

清箫的专栏 3万+

clientHeight vs. offsetHeight

许多文章已经介绍了clientHeight和offsetHeight的区别,就是clientHeight的值不包括scrollbar的高度,而offsetHeight的值包括了scrollbar的高度。然而,clientHeight和offsetHeight的值到底由什么组成的呢?如何计算这两个数的值?1. clientHeight和offsetHeight的值由什么决定?假如我们有以下的

Coding是人生最惬意的事情 4519

区分clientHeight、scrollHeight、offsetHeight

区分clientHeight、scrollHeight、offsetHeight clientHeight: 元素的可见高度 scrollHeight: 元素的整体高度 offsetHeight: 元素的高度 参考文献: [1] 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop [2] js中offsetHe...

xm2by的博客 1845

div之各种高度篇-offsetHeight、clientHeight、scrollHeight、 offsetHeight等等

资历尚浅,真的记不住这些花里胡哨的高度宽度、但是又经常要用到,头大 以下都是自己的理解,如果有误可以提醒下谢谢~ 以上图div为例子 一、offsetHeight = height + border + padding = 342 (返回不带px的数值) 二、clientHeight = height + padding = 340(返回不带px的数值, 可见区域的高度) 三、scrollHeight 如上图所示,其实就是当前div的高度 + 被隐藏内容的高度(那些要拉滚动条才能看...

良人非良 2148

clientHeight、offsetHeight、innerHeight、ouerHeight 区别

innerHeight 和 outerHeight 是window 对象的只读属性, clientHeight 和 offsetHeight 是DOM 元素属性,接下来看看他们之间的有什么区别。 clientHeight vs offsetHeight Element.clientHeight 是元素的只读属性,对于没有定义CSS或者内联布局盒子的元素为0,否则,它是元素内部的高度(单位像素),包含内边距,但不包括水平滚动条、边框和外边距 HTMLElement.offsetHeight 也是一个只读属性,

qq_40890601的博客 4863
上一篇: jQuery 效果 - animate() 方法
下一篇: CSS3 border-radius 属性
javaPie
博客等级 码龄16年 1171粉丝 43原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值