使用纯 JavaScript 获取 div 高度

IT技术 javascript html css
2021-02-08 18:19:31

关于如何在不使用 jQuery 的情况下获得 div 高度的任何想法?

我在 Stack Overflow 上搜索这个问题,似乎每个答案都指向 jQuery 的.height().

我尝试了类似的东西myDiv.style.height,但它什么也没返回,即使我的 div 有它widthheight在 CSS 中设置。

6个回答
var clientHeight = document.getElementById('myDiv').clientHeight;

或者

var offsetHeight = document.getElementById('myDiv').offsetHeight;

clientHeight包括填充。

offsetHeight包括填充、滚动条和边框。

2021-03-13 18:19:31
注意:这允许您获得某物的高度,但您无法使用它更改元素的高度。请参阅:stackoverflow.com/questions/4925217/...
2021-03-25 18:19:31
clientHeight还包括填充,所以它不等同于$.height()
2021-03-27 18:19:31
您还可以使用scrollHeightwhich 包括所包含文档的高度、垂直填充和垂直边框。
2021-04-06 18:19:31

另一种选择是使用 getBoundingClientRect 函数。请注意,如果元素的显示为“none”,则 getBoundingClientRect 将返回一个空矩形。

例子:

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}`);
}

js小提琴

var element = document.getElementById('element');
alert(element.offsetHeight);
var myDiv = document.getElementById('myDiv'); //get #myDiv
alert(myDiv.clientHeight);

clientHeight 和 clientWidth 是您要查找的内容。

offsetHeight 和 offsetWidth 也返回高度和宽度,但它包括边框和滚动条。根据情况,您可以使用其中一种。

希望这可以帮助。

其他答案对我不起作用。这是我在w3schools发现的,假设div有一个height和/或width集合。

所有你需要的是heightwidth排除填充。

    var height = document.getElementById('myDiv').style.height;
    var width = document.getElementById('myDiv').style.width;

你们反对者:从我收到的赞成票来看,这个答案至少帮助了 5 人。如果您不喜欢它,请告诉我原因,以便我修复它。这是我对否决票最大的不满;你很少告诉我为什么你不赞成它。

我看不出 w3schools 如何说其他方法不准确。
2021-04-09 18:19:31