clientHeight vs. offsetHeight

OpenAI Error: 403 Country, region, or territory not supported [Python] 从OpenAI的API服务中获取数据时,由于你所在的国家、地区或领土不被支持,因此请求被拒绝了 阅读详情

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

1. clientHeight和offsetHeight的值由什么决定?

假如我们有以下的DIV,主要显示的文字为"This is the main body of DIV"。

clientHeight vs. offsetHeight 示意图

如上图所示,clientHeight的值由DIV内容的实际高度和CSS中的padding值决定,而offsetHeight的值由DIV内容的实际高度,CSS中的padding值,scrollbar的高度和DIV的border值决定;至于CSS中的margin值,则不会影响clientHeight和offsetHeight的值。

2. CSS中的Height值对clientHeight和offsetHeight有什么影响?

首先,我们看一下CSS中Height定义的是什么的高度。如在本文最后部分“APPENDIX示例代码”(注:以下称为“示例代码”)中,innerDIVClass的Height值设定为50px,在IE下计算出来的值如下所示。也就是说,在IE里面,CSS中的Height值定义了DIV包括padding在内的高度(即offsetHeight的值);在Firefox里面,CSS中的Height值只定义的DIV实际内容的高度,padding并没有包括在这个值里面(70 = 50 + 10 * 2)。

in IE: 
innerDiv.clientHeight: 46
innerDiv.offsetHeight: 50
outerDiv.clientHeight: 0
outerDiv.offsetHeight: 264

in Firfox:
innerDiv.clientHeight: 70
innerDiv.offsetHeight: 74
outerDiv.clientHeight: 348
outerDiv.offsetHeight: 362


在上面的示例中,也许你会很奇怪,为什么在IE里面outerDiv.clientHeight的值为0。那是因为示例代码中,没有定义outerDIVClass的Height值,这时,在IE里面,则clientHeight的值是无法计算的。同样,在示例代码中,如果将innerDIVClass中的Height值去年,则innerDIV.clientHeight的值也为0。(注:在Firefox下不存在这种情况)。

如果CSS中Height值小于DIV要显示内容的高度的时候呢(当CSS中没有定义overflow的行为时)?在IE里面,整个clientHeight(或者offsetHeight)的值并没有影响,DIV会自动被撑大;而在Firefox里面,DIV是不会被撑开的。如在示例代码中,将innerDivClass的Height值设为0,则计算结果如下所示。IE里面的DIV被撑开,其clientHeight值等于内容的高度与padding*2的和;而Firefox里面,文字将溢出DIV的边界,其clientHeight值正好是padding值的两倍。

In IE:
innerDiv.clientHeight: 38
innerDiv.offsetHeight: 42
outerDiv.clientHeight: 0
outerDiv.offsetHeight: 256

In Firefox:
innerDiv.clientHeight: 20
innerDiv.offsetHeight: 24
outerDiv.clientHeight: 298
outerDiv.offsetHeight: 312


APPENDIX 示例代码

<html>
<head>
<style type="text/css">...
.innerDivClass
{...}{
      color
: red;
      margin
: 37px;
      padding
: 10px;
      border
: 2px solid #000000;
      height
: 50px;

 
}

.outerDivClass
{...}{
      padding
: 100px;
      margin
: 200px;
      border
: 7px solid #000000;
}

</style>

<script>...
function checkClientHeight()
...
{
      
var innerDiv = document.getElementById("innerDiv");
      
var outerDiv = document.getElementById("outerDiv");

      result.innerHTML 
= "innerDiv.clientHeight: " + innerDiv.clientHeight + "<br />";
      result.innerHTML 
+= "innerDiv.offsetHeight: " + innerDiv.offsetHeight + "<br />";
      result.innerHTML 
+= "outerDiv.clientHeight: " + outerDiv.clientHeight + "<br />";
      result.innerHTML 
+= "outerDiv.offsetHeight: " + outerDiv.offsetHeight + "<br />";
}

</script>
</head>
<body>
<div id="outerDiv" class="outerDivClass">
<div class="innerDivClass" id="innerDiv">
Hello world.          
</div>
</div>
<p></p>
<div id="result">
</div>
<input type="button" onclick="checkClientHeight()" text="Click Me" Value="Click Me" />
</body>
</html>
软件设计师---计算机系统 阅读详情

相关推荐

用友U8库龄分析避坑指南:物料出入库日期计算的5个常见错误

本文深入剖析了在用友U8系统中进行库龄分析时,物料出入库日期计算的五个常见陷阱。从数据源选择、业务类型过滤、计价方式逻辑、期初数据处理到查询性能优化,逐一解析错误根源并提供避坑指南,帮助企业获得准确的库龄数据,有效管理库存与资金风险。

weixin_29209801的博客 455

clientHeight和offsetHeight

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

树上骑个猴的博客 7473

智驾系统分层架构:从传感器到执行器的全链路解析

本文深入解析了智能驾驶系统的分层架构,从传感器数据采集融合、应用层决策到车辆管理层执行,完整呈现了从感知到控制的全链路工作流程。文章重点阐述了架构设计的核心优势在于接口标准化与模块解耦,以ACC和LKA协同场景为例,说明了各层级如何通过清晰分工与高效协作,实现复杂系统的可靠、灵活与易于升级。

weixin_29219189的博客 399

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

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

lph159的博客 2408

大语言模型(LLM)在组合优化中的新突破:LLM-LNS与FunSearch性能对比

本文深入探讨了大语言模型(LLM)在组合优化中的创新应用,重点对比了LLM-LNS与FunSearch两种方法的性能差异。研究表明,LLM-LNS在物流路径规划、资源调度等场景中展现出显著优势,其双层自演化架构能有效平衡探索与利用,相比传统方法提升效率约43%。文章还提供了实践选择指南,帮助开发者根据具体需求选用合适的技术方案。

weixin_42526415的博客 406

生物信息学新手必看:MAFFT多序列比对从安装到实战(附参数优化技巧)

本文为生物信息学新手提供了MAFFT多序列比对工具的完整指南。从Linux环境下的安装部署,到核心算法策略(如FFT-NS-i、L-INS-i)的选择逻辑,再到空位罚分等关键参数的深度解析与优化技巧,手把手教你完成从原始序列到高质量比对结果的实战流程,为后续进化树构建等分析奠定坚实基础。

weixin_29230773的博客 484

16-简单理解offsetHeight与clientHeight的区别

是一个只读属性,它表示元素的总高度,包括元素的边框(border)、内边距(padding)和水平滚动条的高度(如果存在)。具体而言,等于元素的内容高度(content height) 加上内边距、边框和水平滚动条的高度。也是一个只读属性,它表示元素的内部高度,包括内边距(padding),但不包括边框(border)和水平滚动条的高度(如果存在)。具体而言,等于元素的内容高度(content height) 加上内边距的高度。

weixin_46002095的博客 1200

STM32开发 -- 4G模块开发详解(1)

这部分一直再看,资料都已经整理好了,但是一直没有汇总。接下来就详细的看一下,GSM这部分是怎么实现的。

不积跬步,无以至千里 5万+

区分clientHeight、scrollHeight、offsetHeight

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

xm2by的博客 1845

LangGraph-StateGraph 和 Graph API 源码分析

摘要: StateGraph是LangGraph的核心API,用于构建有状态工作流图。本文分析了其实现原理,包括: 核心类关系:StateGraph(构建器)和CompiledStateGraph(继承自Pregel的可执行图) 关键流程:状态模式到通道的映射、节点到PregelNode的转换 实现特点: 支持TypedDict和Pydantic两种状态模式 自动选择通道类型(LastValue或BinaryOperatorAggregate) 通过映射函数处理节点输入输出 边实现基于通道写入机制 编译过程

838

Python 神经计算实训 实训答案分享

【代码】Python 神经计算实训 实训答案分享。

2403_89314916的博客 346

从CSS盒子模型说到offsetHeight、scrollHeight、clientHeight的区别

offsetHeight、scrollHeight、clientHeight这三个属性我们经常在开发中遇到,如果小伙伴们没有经常使用的话,很容易把这些属性搞混,今天就来理一理这三个属性分别代表什么?offsetHeight = 内容高度 + padding + borderclientheight = 内容高度 + paddingscrollHeight = 内容实际尺寸 + padding。

weixin_53474595的博客 2006

电子电气架构 --- 整车电源管理

保证启动能力:防止因电池电量耗尽而导致的车辆无法启动,这对于确保车辆在任何时候都能可靠运行至关重要。 延长电池寿命:通过避免电池深度放电,有助于延长其使用寿命,减少更换电池的需求和成本。 提升用户体验:虽然负载被关闭可能会暂时影响舒适度,但通过在必要时自动采取行动,可以减少驾驶员的焦虑和不确定性,提高整体的用户满意度。

Soly_kun的博客 1084

clientHeight vs offsetHeight vs scrollTop

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

837

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

clientHeight、offsetHeight、innerHeight、ouerHeight 区别

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

qq_40890601的博客 4863

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

clientHeight、offsetHeight、scrollHeight、scrollTop

由于长时间对clientHeight、offsetHeight、scrollHeight、scrollTop这几个js-dom不理解,处于半迷糊状态,现在就仔仔细细实验整理一波,希望能做个总结,方便以后能快速理解别人代码和做出自己想要的。 结论 clientHeight=height+padding-top+padding-bottom 下面main这个div的clientHeight:1060px=1000px(height)+2x30px(padding-top+padding-bottom).

hardly555的博客 536

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Javascript clientHeight/offsetHeight/scrollHeigt 比较

今天仔细研究了一下offsetHeight/scrollHeight/clientHeight 的区别,总结如下: 了解这些属性区别之前请先设想一个带有scrollbar的div,width:100px, height:100px, overflow:auto

652

offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别

offsetWidth/offsetHeight返回值包含content + padding + border,如果有滚动条,也不包含滚动条,效果与e.getBoundingClientRect()相同 clientWidth/clientHeight返回值只包含content + padding,如果有滚动条,也不包含滚动条 scrollWidth/scrollHeight返回值包含content + padding + 溢出内容的尺寸 参考:https://docs.microsoft.com/e.

Menqq的博客 278

scrollHeight, clientHeight, offsetHeight 差别

Measuring Element Dimension and LocationThe following section is designed to help Web authors understand how to access the dimension and location of elements on the page through the Dynamic HTML

Freewind的专栏 853

element.getBoundingClientRect().width/height VS. element.offsetWidth/offsetHeight VS. element.client...

获得元素尺寸可谓多种多样,但通常它们是有一定区别的。 先说说元素的getBoundingClientRect()方法,这个方法的width或height属性可以计算元素尺寸,但width或height除了本身的content的宽高之外还包括padding和border的部分,这里不得不说的一个属性就是元素的offsetWidth和offsetHeight属性,这俩属性和getBoundingCl...

weixin_30699443的博客 863

documentElement vs body区别

documentElement.scrollTop------>0因为,他包含head, body body.scrollTop------------------>才是正确的 scrollHeight------->Total clientHeight------->不包含margin offsetHeight------>包含margin 转载...

weixin_30510153的博客 64

实在受不了每次瞎猜的滚动计算了!!!

每次都靠猜的我熬过了许多滚动到底部加载的js也是醉了关于JavaScript, jQuery中的各种滚动高度计算Reference from stackoverflow What is offsetHeight, clientHeight, scrollHeight?里面的回答有一张清晰无比的图。在JavaScript中clientHeight: div的真正高度,包括padding,但是不包括滚动

jplyue的博客 304

JavaScript计算页面滚动条宽度

//右侧滚动条宽度计算 var vs_w = document.offsetWidth - document.clientWidth;//底部滚动条高度计算 var hs_h = document.offsetHeight - document.clientHeight;

lihefei_coder的博客 2845

像素vs条数级虚拟列表

目标都一样:少画 DOM。差别在「少」怎么算。总高度用估算/缓存高度撑出来就是真实 DOM 总高滚动条可对应「全部消息」的假高度只对应「当前窗口」真实高度不定高必须测高/估高直接渲染,省事代价实现难、和气泡耦合重DOM 仍可能几十~一两百,不是极致常说的/面试:(像素级)虚拟列表 = 按 scrollTop + viewport 算 index 区间 + spacer/transform。实际开发:条数级虚拟列表 = 按条数slice,不维护总虚拟高度。

luemeon的博客 253
上一篇: AJAX.NET:CascadingDropDown的几点注意
下一篇: Javascript利用closure循环绑定事件
wind_zsu
博客等级 码龄20年 1粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值