在下面的代码中,我希望在div a和div b之间看到15px的垂直空间。为什么我没有看到任何空间?编辑:很多人没有回答这个问题。我不想让事情发生,我想对我看到的行为做出解释。
<div class="a">
<span> lkjjj </span>
</div>
<div class="b">
<span> lkj lkjl kjlj l </span>
</div>
.a { width: 50px; border: 1px solid gray; float: left; }
.b {
margin: 15px 0 0 0;
clear: both;
overflow: hidden;
border: 1px solid gray;
}
这里有一个jsfiddle来说明。
http://jsfiddle.net/nUNM6/
在.a
上,您已经声明了float:left
。这将导致它超出.b的边际。http://jsfiddle.net/nUNM6/1/
您有浮动和保证金崩溃
下面是三个相邻的示例
http://jsfiddle.net/nUNM6/6/
仔细检查Firefox Firebug或Chrome元素检查器中.b
的裕度
编辑
更改了jsfiddle 中的某些内容
没有空间,因为您在"a"上使用float:left
。
a
块是浮动的,这导致在计算b
的裕度时将其计算为空白。如果你把边距放在a
的底部,它就会起作用。
清除float:left
,您的保证金将在中工作
您可以在两个div之间插入此代码,一个是&b:
<div class="clear"></div>
使用此CSS:
.clear{clear:两者;}
这会让你的差距在两者之间显现出来。