我是靠谱客的博主 小巧大叔,最近开发中收集的这篇文章主要介绍Element属性:scrollHeight,clientHeight,offsetHeight区别,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
相关属性解释见专栏其他文章介绍
只讨论块级元素的情况下:
(1)元素没有滚动条,且没有border-top, border-bottom时,三者相等
(2)元素没有垂直滚动条时,scrollHeight,clientHeight相等
(3)元素有垂直滚动条,且没有border-top, border-bottom时,clientHeight和offsetHeight相等
(4)元素有垂直滚动条,且有border-top或 border-bottom时,三者不相等
一般获取元素高度用offsetHeight,涉及到元素滚动相关的场景则会用到scrollHeight和clientHeight。
JS在线编辑器,JS在线运行,在线演示,调试测试代码
<style>
* {
margin: 0;
box-sizing: border-box;
}
#father1 {
width: 150px;
height: 150px;
padding: 10px;
background: red;
overflow: auto;
}
#son1 {
width: 50px;
height: 50px;
background: blue;
line-height: 50px;
text-align: center;
color: #fff;
}
#father2 {
margin-top: 10px;
width: 150px;
height: 150px;
padding: 10px;
border: 5px solid green;
background: red;
overflow: auto;
}
#son2 {
width: 250px;
height: 50px;
background: blue;
line-height: 50px;
text-align: center;
color: #fff;
}
#father3 {
margin-top: 10px;
width: 150px;
height: 150px;
padding: 10px;
background: red;
overflow: auto;
}
#son3 {
width: 50px;
height: 250px;
background: blue;
line-height: 50px;
text-align: center;
color: #fff;
}
#father4 {
margin-top: 10px;
width: 150px;
height: 150px;
padding: 10px;
border: 5px solid green;
background: red;
overflow: auto;
}
#son4 {
width: 50px;
height: 250px;
background: blue;
line-height: 50px;
text-align: center;
color: #fff;
}
</style>
<body>
<div id="father1">
<div id="son1">
son1
</div>
</div>
<div id="father2">
<div id="son2">
son2
</div>
</div>
<div id="father3">
<div id="son3">
son3
</div>
</div>
<div id="father4">
<div id="son4">
son4
</div>
</div>
</body>
<script>
let father1 = document.getElementById("father1");
// 元素没有滚动条,且没有border-top, border-bottom时,三者相等
console.log(father1.scrollHeight, father1.clientHeight, father1.offsetHeight) // 150,150, 150
let father2 = document.getElementById("father2");
// 元素没有垂直滚动条时,scrollHeight,clientHeight相等
console.log(father2.scrollHeight, father2.clientHeight, father2.offsetHeight) // 133,133, 150
let father3 = document.getElementById("father3");
// 元素有垂直滚动条,且没有border-top, border-bottom时,clientHeight和offsetHeight相等
console.log(father3.scrollHeight, father3.clientHeight, father3.offsetHeight) // 270,150,150
let father4 = document.getElementById("father4");
// 元素有垂直滚动条,且有border-top或 border-bottom时,三者不相等
console.log(father4.scrollHeight, father4.clientHeight, father4.offsetHeight) // 270,150,150
</script>
最后
以上就是小巧大叔为你收集整理的Element属性:scrollHeight,clientHeight,offsetHeight区别的全部内容,希望文章能够帮你解决Element属性:scrollHeight,clientHeight,offsetHeight区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复