clientHeight、offsetHeight和scrollHeight的区别
clientHeight = content + padding, 不加溢出内容的高度 ,返回整数
offsetHeight = content + padding+border, 不加溢出内容的高度 ,返回整数
scrollHeight = content + padding+溢出内容的高度,不加border,返回整数
MDN建议获取精确的通过 element.getBoundingClientRect() 函数
亲测如下:
示例代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
body {
margin: 0
}
.container {
height: 200px;
overflow: auto;
background: pink;
border: 100px solid #ccc;
padding: 100px;
box-sizing: content-box;
}
.content {
height: 300px;
background: rebeccapurple;
box-sizing: content-box;
color: #fff;
display: flex;
justify-content: center;
align-items: center;;
}
</style>
</head>
<body>
<div class='container'>
<div class="content">子容器:300px</div>
</div>
<script>
var testTarget = document.getElementsByClassName('container')[0];
function log(element,type){
console.log(type,element[type])
}
log(testTarget,'clientHeight');
log(testTarget,'offsetHeight');
log(testTarget,'scrollHeight');
</script>
</body>
</html>
网上看了很多总不明白,自己亲自动手很清晰了,记录自己的探索过程,希望在前端道路越走越远,加油!