它在jQuery API說:jQuery的:身高()的邊界框
注意.height()將始終返回內容的高度,無論 了CSS的價值箱上漿屬性。從jQuery 1.8開始,這個 可能需要檢索CSS高度加上框尺寸屬性,然後 然後在元素具有框尺寸:border-box時減去每個元素上的任何潛在邊框和填充。爲避免這種損失,請使用 .css(「height」)而不是.height()。
我嘗試下面的例子
<div id='wrapper' class='boxA'>
<div class='boxB'>
Test
</div>
</div>
與CSS
.boxA{
padding: 20px;
background-color: yellow;
box-sizing: border-box;
margin: 50px;
}
.boxB{
height: 50px;
background-color: red;
}
據jQuery的API我確信
$('#wrapper').height($('#wrapper').height());
將設置BOXA的高度到50px(因爲內容高度是50px),但我創建d表示高度設置爲90px。 但是,如果我用
$('#wrapper').css('height', $('#wrapper').height()+"px");
BOXA的高度得到50像素,因此收縮。爲什麼第一種方法不能生成50像素的高度?
此外,命令
$('#wrapper').height($('#wrapper').css('height'));
將BOXA的高度設置爲130px,但$('#wrapper').css('height')
回報90.這裏發生了什麼?
你可以在這個jFiddle找到這些例子。
_「...從jQuery 1.8開始,這可能需要檢索CSS height和box-sizing屬性,然後**減去每個元素上任何潛在的border和padding,尺寸:邊框。「_ – Vucko
@ Vucko我現在添加了全部評論。它仍然沒有向我解釋我的帖子中描述的怪異行爲。 – Adam