区分clientHeight、scrollHeight、offsetHeight

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

大家好,又见面了,我是你们的朋友全栈君。

区分clientHeight、scrollHeight、offsetHeight

clientHeight、offsetHeight、scrollHeight都是用来描述DOM元素的高度的属性;对于同一个元素,它们分别表示的高度值会有所不同。具体如下:

clientHeight:

只读属性,所表示的元素高度包括:元素的内容高度(如果有下滚动条,需减去下滚动条的高度,下滚条默认高度为17px)+上下padding;不包括上下border、上下margin、下滚动条高度(如果元素有下滚动条,则clientHeight表示的高度不包含下滚动条)。

offsetHeight:

只读属性,所表示的元素高度包括:元素的内容高度(如果有下滚动条,需减去下滚动条的高度,下滚条默认高度为17px)+上下padding+上下border+下滚动条高度(如果元素有下滚动条,则offsetHeight表示的高度包含下滚动条);不包括上下margin;我们通过css设置的高度、上下padding、上下border组成了offsetHeight的值。

scrollHeight:

只读属性,如果元素内的子元素高度大于该元素,scrollHeight所表示的元素高度为:元素内子元素的高度+该元素的上下padding;如果元素内的子元素高度小于该元素,scrollHeight所表示的元素高度为:该元素的内容高度(如果有下滚动条,需减去下滚动条的高度,下滚条默认高度为17px)+该元素的上下padding,此时,与clientHeight在数值上相等。

下面两个demo可以很好地证明以上表述:

demo1(如果元素内的子元素高度大于该元素):

  • html
<div class="container"> <div class="box"></div> </div> 
  • css
.container{ 
     overflow: auto; width: 1000px; height: 500px; padding: 20px 40px; border: 10px dashed #f44336; margin: 30px 40px; background: #ffeb3b; } .box{ 
     width: 500px; height: 2000px; background: #2196f3; } 

这里写图片描述

demo2(如果元素内的子元素高度小于该元素):

  • html
<div class="container"> <div class="box"></div> </div> 
  • css(如果有下滚动条)
.container{ 
     overflow: scroll; width: 1000px; height: 500px; padding: 20px 40px; border: 10px dashed #f44336; margin: 30px 40px; background: #ffeb3b; } .box{ 
     width: 500px; height: 200px; background: #2196f3; } 

这里写图片描述

  • css(如果没有下滚动条)
.container{ 
     width: 1000px; height: 500px; padding: 20px 40px; border: 10px dashed #f44336; margin: 30px 40px; background: #ffeb3b; } .box{ 
     width: 500px; height: 200px; background: #2196f3; } 

这里写图片描述

总结:

1、clientHeight与offsetHeight的区别在于是否将元素的border以及下滚动条高度(如果有下滚动条)计算在内;

2、如果元素内的子元素高度小于该元素,该元素的scrollHeight与clientHeight在数值上相等;

3、如果元素内的子元素高度大于该元素,scrollHeight所表示的元素高度为:元素内子元素的高度+该元素的上下padding;

参考文献:

[1] css clientheight、offsetheight、scrollheight详解
[2] 搞清clientHeight、offsetHeight、scrollHeight、offsetTop、scrollTop
[3] js中offsetHeight、clientHeight、scrollHeight等相关属性区分总结

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163742.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 漯河恢复常态化疫情防控工作_你尝试使用的应用程序

    漯河恢复常态化疫情防控工作_你尝试使用的应用程序问题:windows平台怎么运行.netcore控制台解决一:.netcore跨平台,控制台在生成后并不会生成exe文件直接在生成目录启用cmd,或者直接cd到相应目录startdotnet你的控制台名字.dll 问题:强制生成exe文件在控制台项目管理文件 xxx.csproj 添加下面一行&lt;PropertyGroup&gt;  &lt;Outp…

    2025年5月28日
    3
  • 2246xt u盘开卡详细教程_电脑重装系统:常规U盘PE装机详细教程~[通俗易懂]

    2246xt u盘开卡详细教程_电脑重装系统:常规U盘PE装机详细教程~[通俗易懂]系统重装:常规U盘PE装机详细教程!一适用条件此方法适用任何情况下的电脑系统新装、重装!8G大小的U盘X1微PE工具箱软件X1微软原版系统镜像文件X1PE系统我这里推荐使用微PE工具箱(优启动、老毛桃、大白菜都可以使用哪个看你自己心情)。在微PE官网下载工具箱安装包,推荐直接下载V2.0版本,支持NVME盘。如果你的…

    2022年6月12日
    30
  • Pycharm自动调整代码格式的快捷键Alt+Ctrl+L

    Pycharm自动调整代码格式的快捷键Alt+Ctrl+L1、代码自动填充空格2、自动对齐代码3、符合PEP8规范

    2025年7月13日
    3
  • 计算机电脑显示器都有多大的,计算机显示器有多大? 24或27?总是有你的食物…

    计算机电脑显示器都有多大的,计算机显示器有多大? 24或27?总是有你的食物…随着电子竞技产业的日趋成熟,显示产业的重要组成部分也已经崛起,争夺分辨率地位的斗争从未停止。尽管4K显示器具有足够的细微差别,并且4K资源和游戏套件已经跟上,但业内仍然有制造商在开发6K和8K显示器…实际上,从显示技术的发展和变化来看,盲目追求分辨率是最重要的。路太偏执。实际上,一般而言,购买计算机的过程应首先选择主机性能和所需的软件支持。在满足这些要求之后,将查看显示器尺寸的选择。[购买显示…

    2022年5月12日
    41
  • Echarts网格颜色渐变 + 折线图折线发光高亮效果

    Echarts网格颜色渐变 + 折线图折线发光高亮效果series:里面定义折线发光高亮的效果网格颜色的渐变附上封住代码

    2025年8月12日
    2
  • chgrp linux,linux命令chgrp

    chgrp linux,linux命令chgrplinux 命令 chgrpLinuxch 命令用来变更文件或目录的所属群组 Linuxchgrp 命令说明 Linuxchgrp 命令用来改变文件或目录所属的用户组 该命令用来改变指定文件所属的用户组 其中 组名可以是用户组的 id 也可以是用户组的组名 文件名可以是由空格分开的要改变属组的文件列表 也可以是由通配符描述的文件集合 如果用户不是该文件的文件主或超级用户 root 则不能改变该文件

    2025年7月2日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号