用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),但我发现高度设置为90px.
但是,如果我使用
$('#wrapper').css('height',$('#wrapper').height()+"px");
boxA的高度为50px,因此缩小.为什么第一种方法也不能产生50px的高度?
此外,命令
$('#wrapper').height($('#wrapper').css('height'));
将boxA的高度设置为130px但$(‘#wrapper’).css(‘height’)返回90.这里发生了什么?
您可以在jFiddle中找到这些示例.
看起来.height()总是通过内容框来衡量,但是在应用新值时它会考虑大小调整大小,因此它会将测量的内容框值添加到其余设置中,因为框已经设置了边框.
如果你在demo中将box-sizing更改为content-box,它的行为将完全相同(在所有情况下都会将50px设置为每个框,并且对于content-box值,所有框都将具有90px).