使用纯JavaScript获取div高度

时间:2013-03-25 12:58:14

标签: javascript html css

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

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

我尝试了类似myDiv.style.height的内容,但它没有返回任何内容,即使我的div在CSS中设置了widthheight

11 个答案:

答案 0 :(得分:492)

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

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

clientHeight包含填充。

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

答案 1 :(得分:16)

jsFiddle

var element = document.getElementById('element');
alert(element.offsetHeight);

答案 2 :(得分:9)

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

clientHeight和clientWidth是您正在寻找的。

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

希望这有帮助。

答案 3 :(得分:9)

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

示例:

var elem = document.getElementById("myDiv");
if(elem) {
   var rect = elem.getBoundingClientRect();
   console.log(rect.height);  
}

答案 4 :(得分:3)

其他答案对我不起作用。这是我在w3schools找到的内容,假设div设置了height和/或width

您只需heightwidth即可排除填充。

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

你是挫折者:从我收到的赞成票来看,这个答案至少帮助了5个人。如果你不喜欢它,告诉我为什么我可以解决它。这是我最大的宠儿:你很少告诉我你为什么要投票。

答案 5 :(得分:1)

<div id="item">show taille height</div>
<script>
    alert(document.getElementById('item').offsetHeight);
</script>

the MSDN sample

答案 6 :(得分:1)

一个选项是

const styleElement = getComputedStyle(document.getElementById("myDiv"));
console.log(styleElement.height);

答案 7 :(得分:0)

除了el.clientHeightel.offsetHeight之外,当您需要元素内部内容的高度(无论元素本身设置的高度如何)时,都可以使用el.scrollHeightmore info

如果要将元素高度或max-height设置为内部动态内容的确切高度,这将很有用。例如:

var el = document.getElementById('myDiv')

el.style.maxHeight = el.scrollHeight+'px'

答案 8 :(得分:0)

尝试

myDiv.offsetHeight 

console.log("Height:", myDiv.offsetHeight );
#myDiv { width: 100px; height: 666px; background: red}
<div id="myDiv"></div>

答案 9 :(得分:0)

这是另一种选择:

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

    }

答案 10 :(得分:0)

javascript 高度计算

包括填充

使用clientHeight

element.clientHeight

使用offsetHeight

包括内边距、边框、边框宽度

element.offsetHeight

使用el.style.height

它只返回给定的高度(必须有手动高度例如:<div style="height:12px"></div> 否则返回空结果

element.style.height

使用getBoundingClientRect

包括内边距、边框、边框宽度

elem.getBoundingClientRect();
elem.height