关于如何在不使用 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