我正在搜索Stack Overflow这个问题,似乎每个答案都指向jQuery的
.height()
。我尝试了类似
myDiv.style.height
的方法,但返回了什么也没有,即使我的div在CSS中设置了width
和height
。#1 楼
var clientHeight = document.getElementById('myDiv').clientHeight;
或
var offsetHeight = document.getElementById('myDiv').offsetHeight;
clientHeight
包括填充。offsetHeight
包括填充,scrollBar和边框。评论
在quirksmode.org/mobile/tableViewport_desktop.html下的ie10上,offsetheight不会起作用
–特色
15年8月26日在15:38
您还可以使用scrollHeight,其中包括所包含文档的高度,垂直填充和垂直边框。
–赛义德
15年12月24日在11:35
clientHeight还包含填充,因此不等同于$ .height()
–伊芙
16年1月10日,下午1:58
边界和边缘也占据了空间。 :)并且您的答案暗示clientHeight不包含填充。这个问题同时提到$ .height()和.style.height,都不包含填充,这表明提问者也不想这样做。
–伊芙
16年1月11日,下午5:29
注意:这允许您获取某物的高度,但是您不能使用它来更改元素的高度。参见:stackoverflow.com/questions/4925217/…
–瑞安·史密斯(Ryan Smith)
16年7月21日在14:27
#2 楼
另一个选择是使用getBoundingClientRect函数。请注意,如果元素的显示为“ none”,则getBoundingClientRect将返回一个空rect。示例:
var elem = document.getElementById("myDiv");
if(elem) {
var rect = elem.getBoundingClientRect();
console.log("height: " + rect.height);
}
更新:
这里是与2020年编写的代码相同:
const elem = document.querySelector("#myDiv");
if(elem) {
const rect = elem.getBoundingClientRect();
console.log(`height: ${rect.height}`);
}
#3 楼
jsFiddlevar element = document.getElementById('element');
alert(element.offsetHeight);
#4 楼
var myDiv = document.getElementById('myDiv'); //get #myDiv
alert(myDiv.clientHeight);
clientHeight和clientWidth是您要查找的内容。
offsetHeight和offsetWidth也返回高度和宽度,但它包括边框和滚动条。根据情况,您可以使用其中一种。
希望有帮助。
#5 楼
其他答案对我不起作用。这是我在w3schools上发现的,假设div
设置了height
和/或width
。 > 您的投票失败者:根据我收到的投票结果,此答案至少帮助了5个人。如果您不喜欢它,请告诉我原因,以便修复它。那是我最大的不高兴的表情。你很少告诉我为什么要投票。
评论
我看不出w3schools如何说其他方法不准确。
– aknuds1
2015年10月8日13:31
#6 楼
尝试myDiv.offsetHeight
console.log("Height:", myDiv.offsetHeight );
#myDiv { width: 100px; height: 666px; background: red}
<div id="myDiv"></div>
#7 楼
除了el.clientHeight
和el.offsetHeight
之外,当您需要元素内部内容的高度(无论元素本身设置的高度如何)时,都可以使用el.scrollHeight
。更多信息如果要将元素高度或max-height设置为内部动态内容的确切高度,这将很有用。例如:
var el = document.getElementById('myDiv')
el.style.maxHeight = el.scrollHeight+'px'
#8 楼
这是另一种选择:var classElements = document.getElementsByClassName("className");
function setClassHeight (classElements, desiredHeightValue)
{
var arrayElements = Object.entries(classElements);
for(var i = 0; i< arrayElements.length; i++) {
arrayElements[i][1].style.height = desiredHeightValue;
}
}
#9 楼
<div id="item">show taille height</div>
<script>
alert(document.getElementById('item').offsetHeight);
</script>
Jsfiddle
#10 楼
一种选择是const styleElement = getComputedStyle(document.getElementById("myDiv"));
console.log(styleElement.height);
评论
stackoverflow.com/a/10118190/1172872