区分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)
上一篇 2022年7月23日 下午11:00
下一篇 2022年7月23日 下午11:00


相关推荐

  • 【手把手】制作一个简单的HTML网页

    【手把手】制作一个简单的HTML网页新建一个html文件:我要给body添加一些样式,就在head元素上挂载一个style元素。然后,写样式表:效果:这样的话,我们就可以看到body部分了。现在,我给body添加一点padding。页面上看不出区别,让我们打开F12,看一下现在的body变成了什么样子。示意图:从图中可以看出,body元素分为三层,最里面的一层,就是520×500的那部分,这个叫做内部真实空间,也就是说,你可以在里面添加其他元素,比如div元素,p元素,a元素等等。然后中间的一层就是paddin

    2022年7月27日
    21
  • 如何用微信建立打卡小程序(做打卡签到小程序方法)

    如何用微信建立打卡小程序(做打卡签到小程序方法)很多粉丝朋友想要了解如何用微信建立打卡小程序 本文小编就为大家介绍做打卡签到小程序方法 做打卡签到小程序可以 快速发起群打卡 考勤打卡 培训打卡 支持每日打卡 助你养成好习惯 早起 早睡 学习 运动 读书 可互相监督 提醒 微信考勤打卡 可帮助公司外勤人员上传定位信息 用于考勤 建立微信打卡签到小程序的方法有两种 1 通过微信 APP 搜索打卡小程序 使用第三方的打卡系统 比如企业微信打卡 小打卡 其他考勤打卡小程序等 2 开发制作自己公司的考勤打卡小程序系统 用户自己公司的考勤打卡管理 如

    2026年3月19日
    3
  • groovy 定义map_groovy map

    groovy 定义map_groovy mapMap<String,String>ad_config=result.dataad_config.each{data->println(data.key)println(data.value)}pangolin_global_full_screen_video_idadmob_app_idadmob_banner_idadmob_interstitial_idadmob_rew…

    2025年11月20日
    5
  • pip安装、卸载依赖包的命令

    pip安装、卸载依赖包的命令1.【下载】python-mpipinstall–upgradepip2.【指定下载】python3-mpipinstallpip==20.0.2

    2022年10月16日
    4
  • Vue环境下用ECharts绘制中国地图,并实现拖动、缩放与各省份自动轮播高亮显示

    Vue环境下用ECharts绘制中国地图,并实现拖动、缩放与各省份自动轮播高亮显示在 vue 环境下用 echarts 绘制中国地图 并实现拖动 缩放与各省份自动轮播高亮显示

    2026年3月26日
    2
  • SDRAM控制器

    SDRAM控制器

    2022年1月9日
    58

发表回复

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

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