Element.clientHeight - Web APIs | MDN
这个属性是只读属性,对于没有定义CSS或者内联布局盒子的元素为0,否则,它是元素内部的高度(单位像素),包含内边距,但不包括水平滚动条、边框和外边距。
其值计算方式如下;
clientHeight = 内容高 + paddingTop + paddingBottom - 水平滚动条的高度 (如果存在)
如图:控制台选中元素时,看到的蓝色部分就是盒子内容
box-sizing值为content-box时:
内容高 = css height
box-sizing值为border-box时:
内容高 = css height - paddingTop - paddingBottom - borderTop - borderBottom
相当于此情景下 clientHeight = css height - borderTop - borderBottom - 水平滚动条的高度 (如果存在)
《clientWidth同理》
<style>
* {
margin: 0px;
padding: 0px;
}
.box {
box-sizing: border-box;
width: 100px;
height: 100px;
padding: 10px;
border: 5px solid green;
background: red;
overflow: auto;
}
.son {
width: 200px;
height: 200px;
background: blue;
}
</style>
<body>
<div id="box" class="box">
<div class="son"></div>
</div>
</body>
<script>
// chrome里滚动条高度为17,得到值为 100 - 5*2 -17 = 73;
console.log(document.getElementById("box").clientHeight)
// chrome里滚动条宽度为17,得到值为 100 - 5*2 -17 = 73;
console.log(document.getElementById("box").clientWidth)
</script>