CSS浮动留下空隙

时间:2016-08-06 22:02:15

标签: html css

鉴于以下简单的html,如何在没有空间的情况下将绿色DIV堆叠在一起(使用或不使用浮动)?我不知道为什么第三和第四个绿色DIV之间有空间。

* {
  margin: 0;
}
.left {
  width: 20%;
  background-color: #00CC66;
  height: 50px;
  float: left;
  clear: left;
}
.right {
  width: 20%;
  background-color: #0033FF;
  height: 99px;
  float: right;
  clear: right;
}
<div class="left"></div>
<div class="right"></div>
<div class="left"></div>
<div class="right"></div>
<div class="left"></div>
<div class="right"></div>
<div class="left"></div>
<div class="right"></div>

3 个答案:

答案 0 :(得分:2)

浮动div不能位于前面浮动元素的上方(就垂直位置而言),即使它浮动到另一侧。因此,第4个绿色div不能高于第3个蓝色div并被向下推。

答案 1 :(得分:0)

清除div应位于“左”和“左”之间。 '对'不是每个div。

解决方案1 ​​

<div class="left"></div>
<div class="right"></div>
<div style="clear: both;"></div>
<div class="left"></div>
<div class="right"></div>
<div style="clear: both;"></div>
<div class="left"></div>
<div class="right"></div>

CSS

* {
  margin: 0;
}
.left {
  display: block;
  width: 20%;
  background-color: #00CC66;
  height: 50px;
  float: left;
}
.right {
  width: 20%;
  background-color: #0033FF;
  height: 50px;
  float: right;
}

有点清醒

解决方案2

<div class="left"></div>
<div class="right"></div>
<div class="clr left"></div>
<div class="right"></div>
<div class="clr left"></div>
<div class="right"></div>
<div class="clr left"></div>
<div class="right"></div>

的CSS:

* {
  margin: 0;
}
.left {
  display: block;
  width: 20%;
  background-color: #00CC66;
  height: 50px;
  float: left;
}
.right {
  width: 20%;
  background-color: #0033FF;
  height: 50px;
  float: right;
}

.clr{
  clear: both;
}

答案 2 :(得分:-1)

在样式标记中更改此内容: .left {width:20%; background-color:#00CC66;身高:70px;向左飘浮;明确:左;}