如何在px维度</div>中获得<div>的高度

时间:2010-10-01 12:43:05

标签: javascript jquery html css

我使用jQuery库来查找div的高度。

以下是我的div元素,其中包含属性:

<DIV id="myDiv" style="height:auto; width:78;overflow:hidden"> Simple Test</DIV>

下面是我的jQuery代码,以获得<div>

的高度
var result = $("#myDiv").css('height');
alert(result);

执行上述语句后,我得到的结果为“auto”。实际上这是我没想到的,而不是我希望结果是px维度。

5 个答案:

答案 0 :(得分:139)

虽然它们如何检索高度值略有不同,即有些人会计算整个元素,包括填充,边距,滚动条等,其他人只会以原始形式计算元素。
你可以试试这些:

的javascript:

var myDiv = document.getElementById("myDiv");
myDiv.clientHeight;
myDiv.scrollHeight;
myDiv.offsetHeight;

或在jquery中:

$("#myDiv").height();
$("#myDiv").innerHeight();
$("#myDiv").outerHeight();

答案 1 :(得分:64)

像这样使用.height()

var result = $("#myDiv").height();

还有.innerHeight().outerHeight()取决于完全您想要的内容。

You can test it here,使用填充/边距/内容来查看它是如何变化的。

答案 2 :(得分:30)

使用height()

var result = $("#myDiv").height();
alert(result);

这将为您提供无单位计算的高度(以像素为单位)。 “px”将从结果中删除。即如果高度为400px,结果将为400,但结果将以像素为单位。

如果你想没有 jQuery,你可以使用纯JavaScript:

var result = document.getElementById("myDiv").offsetHeight;

答案 3 :(得分:1)

对于那些寻求纯JS解决方案的人:

let el = document.querySelector("#myElementId");

// including the element's border
let width = el.offsetWidth;
let height = el.offsetHeight;

// not including the element's border:
let width = el.clientWidth;
let height = el.clientHeight;

查看this article了解更多详细信息。

答案 4 :(得分:0)

有一个内置的方法来获取边界矩形:Element.getBoundingClientRect

  

结果是包含整个矩形的最小矩形   元素,带有只读的left,top,right,bottom,x,y,width和    高度 属性。

请参见以下示例:

let innerBox = document.getElementById("myDiv").getBoundingClientRect().height;
document.getElementById("data_box").innerHTML = "height: " + innerBox;
body {
  margin: 0;
}

.relative {
  width: 220px;
  height: 180px;
  position: relative;
  background-color: purple;
}

.absolute {
  position: absolute;
  top: 30px;
  left: 20px;
  background-color: orange;
  padding: 30px;
  overflow: hidden;
}

#myDiv {
  margin: 20px;
  padding: 10px;
  color: red;
  font-weight: bold;
  background-color: yellow;
}

#data_box {
  font: 30px arial, sans-serif;
}
Get height of <mark>myDiv</mark> in px dimension:
<div id="data_box"></div>
<div class="relative">
  <div class="absolute">
    <div id="myDiv">myDiv</div>
  </div>
</div>