如果我将元素设置为 display:none 。
Firebug告诉我元素有:
margin-top / bottom:20px
padding-top / bottom:20px
身高:-22px
如果元素设置为 display:block 高度更改为:
身高:73px
我需要通过Jquery检索-22px,但无论设置什么显示,我总是得到73px。有没有办法获得-22px?
谢谢!
答案 0 :(得分:2)
不要使用jQuery。如果您有该元素(可能包含getElementById()
),则只需获取其offsetHeight
。这应该是0px
- 没有负高度这样的东西,我认为只是Firebug采用offsetHeight并减去margin / border / padding ......
我几乎可以肯定jQuery会假设你想要看到的实际高度,所以它会做“让它变得可见,达到高度,让它再次看不见”。
答案 1 :(得分:0)
我摆弄着,恕我直言,问题在于实际的div。做进一步的调查。
<div id='testDiv' style='padding:20px; margin:20px; display:none; border:1px solid red; ' ></div>
alert($('#testDiv').height()); // 0
alert($('#testDiv').innerHeight()); //40
alert($('#testDiv').outerHeight()); //42 <=======
$('#testDiv').css('display','block');
alert($('#testDiv').height()); // 0
alert($('#testDiv').innerHeight()); //40
alert($('#testDiv').outerHeight()); //42 <========