区分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等相关属性区分总结

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • java引用变量和对象(java变量和对象)

    Java对象及其引用先搞清楚什么是堆,什么是栈。Java开辟了两类存储区域,对比二者的特点存储区域 存储内容 优点 缺点 回收 栈 基本类型的变量和对象的引用变量 存取速度比堆要快,仅次于寄存器,栈数据可以共享 存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放一些基本类型的变量 当超过变量的作用域后,Java会自动释放…

  • 适配器的作用和原理

    适配器的作用和原理设计模式在android中的应用——适配器模式http://www.eoeandroid.com/thread-228482-1-1.html

  • DFS(深度优先搜索算法)「建议收藏」

    DFS(深度优先搜索算法)「建议收藏」基本概念深度优先搜索算法(DepthFirstSearch,简称DFS):一种用于遍历或搜索树或图的算法。沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。算法思想回溯法(探索与回溯法…

  • 常用方法在Ubuntu安装pycharm失败的解决方法[通俗易懂]

    常用方法在Ubuntu安装pycharm失败的解决方法[通俗易懂]按常用方法(下载安装包再./pycharm.sh)安装失败,报warn:keymap“visualstudio”notfound,keymap“eclipse”notfound想不通为什么和这些ide有关,查了也没解决最后直接到Ubuntu自带的Ubuntusoftware下搜索pycharm下载,一次成功,不知道为什么这么简单有效的方法大家都不优先推荐。。。…

  • debian配置samba_ubuntu设置文件共享

    debian配置samba_ubuntu设置文件共享●安装与配置Samba共享服务●创建目录为/share/public的共享目录●共享名为public●仅支持匿名用户的只读访问(请在该目录内存放一个文件名为file.txt,文件内容为“TestFile”以便于测试)●创建目录为/share/files的共享目录●共享名为files●创建zhangsan,wangwu两个用户,密码均为Skills39,并且都能从client客户端登录访问到该共享目录并上传文件●zhangsan用户可以查看和删除所有人的文件●wa

  • Django(29)模板变量「建议收藏」

    Django(29)模板变量「建议收藏」变量模板中可以包含变量,Django在渲染模板的时候,可以传递变量对应的值过去进行替换。变量的命名规范和Python非常类似,只能是阿拉伯数字和英文字符以及下划线的组合,不能出现标点符号等特殊字符。

发表回复

您的电子邮箱地址不会被公开。

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