区分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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Nginx的启动、停止与重启

    Nginx的启动、停止与重启

    2021年10月27日
    50
  • Idea快捷键大全(Windows)

    Idea快捷键大全(Windows)Ctrl快捷键 介绍 Ctrl+F 在当前文件进行文本查找(必备) Ctrl+R 在当前文件进行文本替换(必备) Ctrl+Z 撤销(必备) Ctrl+Y 删除光标所在行或删除选中的行(必备) Ctrl+X 剪切光标所在行或剪切选择内容 Ctrl+C 复制光标所在行或复制选择内容 …

    2022年5月22日
    101
  • 小程序 轮播图样式设置

    小程序 轮播图样式设置swiper标签存在默认的宽度和高度100%*150pximage标签也存在默认的高度和宽度320px*240px设计图片和轮播图先看一下原图的尺寸数据假设750*340让图片的高度自适应宽度为100%让swiper标签的高度与图片的告诉一样高swiper高度/swiper宽度=图片高度/图片宽度swiper高度=图片高度*swiper宽度/图片宽度swiper高度=340*100vw/750100vw为视口宽度图片的.

    2022年5月21日
    78
  • 有什么用_pattern和way的区别

    有什么用_pattern和way的区别开始:在利用servlet或filter进行url请求的匹配时,很关键的一点是匹配规则,但是servlet容器中的匹配规则既不是简单的通配也不是正则表达式而是有自己的规则比较容易混淆绝对路径和相对路径当浏览器发起一个url请求后,该请求发送到servlet容器的时候,容器会先将请求的url减去当前应用上下文的路径作

    2025年7月1日
    1
  • 5分钟入门mp4文件格式是多少_Mp4格式

    5分钟入门mp4文件格式是多少_Mp4格式写在前面本文主要内容包括,什么是MP4、MP4文件的基本结构、Box的基本结构、常见且重要的box介绍、普通MP4与fMP4的区别、如何通过代码解析MP4文件等。写作背景:最近经常回答团队小伙伴关于直播&短视频的问题,比如“flv.js的实现原理”、“为什么设计同学给的mp4文件浏览器里播放不了、但本地可以正常播放”、“MP4兼容性很好,可不可以用来做直播”等。在解答的过程中,发现经常涉及MP4协议的介绍。之前这块有简单了解过并做了笔记,这里稍微整理一下,顺便作为团队参考文档,如

    2022年10月16日
    1
  • recvfrom函数

    recvfrom函数RECV(2) LinuxProgrammer’sManual RECV(2)NAMErecv,recvfrom,recvmsg-receiveamessagefromasocketSYNOPSIS#include<sys/types.h>#include<sys/socket.h>ssize_trecv(intsockfd,void*buf,size_tlen,intflags);

    2022年7月23日
    26

发表回复

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

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