我有 2 个 div
<div id=number1><div id=number2></div></div>
Why is
#number1 {
background:red;
}
#number2 {
background:blue;
height: 200px;
margin: 10px;
}
不一样
#number1 {
background:red;
padding:10px;
}
#number2 {
background:blue;
height: 200px;
}
在第一种情况下,我在顶部和底部得到白线,它应该是 div 1 的红色?http://jsfiddle.net/ZbCNq/
In 第一个案例,您遇到的意外行为是由于“边距崩溃”造成的。
规格:
- http://www.w3.org/TR/CSS2/box.html#collapsing-margins
- http://www.w3.org/TR/css3-box/#collapsing-margins
一些更容易阅读的内容:
- http://complexspiral.com/publications/uncollapsing-margins/
- http://reference.sitepoint.com/css/collapsingmargins
- http://www.howtocreate.co.uk/tutorials/css/margincollapsing
您可以通过以下方式修复它:
- Using
padding
on #number1
代替margin
on #number2
,正如您在问题中所做的那样。
- Adding
overflow: hidden
to #number1
: http://jsfiddle.net/thirtydot/EWeDE/1/
- 添加一些填充
#number1
: http://jsfiddle.net/thirtydot/EWeDE/2/
- Adding
float: left; width: 100%
to #number1
: http://jsfiddle.net/thirtydot/EWeDE/3/
- Adding
display: inline-block; width: 100%;
to #number1
: http://jsfiddle.net/thirtydot/EWeDE/4/
- 添加边框
#number1
: http://jsfiddle.net/thirtydot/EWeDE/5/
- 我确信还有更多方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)