关于如何在不使用 jQuery 的情况下获得 div 的高度的任何想法?
我在 Stack Overflow 上搜索这个问题,似乎每个答案都指向 jQuery 的.height().
我尝试了类似的东西myDiv.style.height,但它什么也没返回,即使我的 div 有它width并height在 CSS 中设置。
关于如何在不使用 jQuery 的情况下获得 div 的高度的任何想法?
我在 Stack Overflow 上搜索这个问题,似乎每个答案都指向 jQuery 的.height().
我尝试了类似的东西myDiv.style.height,但它什么也没返回,即使我的 div 有它width并height在 CSS 中设置。
var clientHeight = document.getElementById('myDiv').clientHeight;
或者
var offsetHeight = document.getElementById('myDiv').offsetHeight;
clientHeight包括填充。
offsetHeight包括内边距、滚动条和边框。
另一种选择是使用 getBoundingClientRect 函数。请注意,如果元素的显示为“无”,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}`);
}
var element = document.getElementById('element');
alert(element.offsetHeight);
var myDiv = document.getElementById('myDiv'); //get #myDiv
alert(myDiv.clientHeight);
clientHeight 和 clientWidth 是您正在寻找的。
offsetHeight 和 offsetWidth 也返回高度和宽度,但它包括边框和滚动条。根据情况,您可以使用其中一种。
希望这可以帮助。
除了el.clientHeight和之外el.offsetHeight,当您需要元素内部内容的高度时(无论元素本身设置的高度如何),您都可以使用el.scrollHeight. 更多信息
如果您想将元素高度或最大高度设置为其内部动态内容的确切高度,这将很有用。例如:
var el = document.getElementById('myDiv')
el.style.maxHeight = el.scrollHeight+'px'
其他答案对我不起作用。这是我在w3schools找到的,假设div有一个height和/或width设置。
您所需要的只是height排除width填充。
var height = document.getElementById('myDiv').style.height;
var width = document.getElementById('myDiv').style.width;
你们反对者:从我收到的赞成票来看,这个答案至少帮助了 5 人。如果您不喜欢它,请告诉我原因,以便我可以修复它。那是我对投票的最大不满;你很少告诉我你为什么不投票。
尝试
myDiv.offsetHeight
console.log("Height:", myDiv.offsetHeight );
#myDiv { width: 100px; height: 666px; background: red}
<div id="myDiv"></div>
这是另一种选择:
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;
}
}
一种选择是
const styleElement = getComputedStyle(document.getElementById("myDiv"));
console.log(styleElement.height);
<div id="item">show taille height</div>
<script>
alert(document.getElementById('item').offsetHeight);
</script>
最好的办法是——
var myDiv = document.getElementById('myDiv');
var myDivWidth = myDiv.clientWidth || myDiv.offsetWidth || (myDiv.getBoundingClientRect()).width;
var myDivHeight= myDiv.clientHeight || myDiv.offsetHeight || (myDiv.getBoundingClientRect()).height;
console.log("Width: "+ myDivWidth + "px");
console.log("Height: "+ myDivHeight + "px");
<div style="padding: 50px; margin: 8px auto; outline: 1px solid green;">
<div id="myDiv" style="width: 100%; height: 256px; padding: 50px; margin: 4px; background: #000000; color: #ffffff; outline: 1px solid red;">
This is "#myDiv" <br>
Width: 100% <br>
Height: 256px
</div>
</div>
javascript高度计算
包括填充
利用clientHeight
element.clientHeight
利用offsetHeight
包括填充,边框,border_width
element.offsetHeight
利用el.style.height
它仅返回给定高度(必须具有手动高度,例如:<div style="height:12px"></div>否则返回空结果
element.style.height
利用getBoundingClientRect
包括填充,边框,border_width
elem.getBoundingClientRect();
elem.height