为什么在这两个div之间没有插入垂直空间



在下面的代码中,我希望在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:两者;}

这会让你的差距在两者之间显现出来。

最新更新