更新:在小提琴上添加css过渡以使其更清晰
当通过javascript从此div中删除填充时,Chrome不会调整内容的大小以适应(即,红色div不覆盖黄色,它保持相同的大小): http://jsfiddle.net/XDchs/4/
同样,如果添加了填充,则将内容推送到div之外: http://jsfiddle.net/XDchs/3/
Firefox按照我的预期调整大小。有谁知道为什么,以及如何解决它?
HTML:
<div id="outer">
<div id="inner">
<div id="content">blah</div>
</div>
</div>
CSS:
#outer {
background-color:blue;
width:300px;
margin:0 auto;
}
#inner {
padding-left:100px;
margin:2px;
background-color:yellow;
-webkit-transition:padding-left 2s;
-moz-transition:padding-left 2s;
}
#inner.no-padding {
padding-left:0;
}
#content {
background-color:red;
}
JavaScript的:
$(document).ready(function() {
$("#inner").addClass("no-padding");
});
答案 0 :(得分:1)
我不知道为什么Chrome看起来行为不正确,但你可以解决重置宽度的问题:
#inner.no-padding {
padding-left:0;
width: 100%;
}
答案 1 :(得分:1)
我最后通过在添加CSS类后通过javascript将内容的宽度设置为100%来解决此问题:http://jsfiddle.net/XDchs/6/
$("#content").width("100%");
我找不到完全有效的CSS解决方案。
此外,我将此归档为Chrome错误:https://code.google.com/p/chromium/issues/detail?id=171060