为什么定位的div重叠?

时间:2016-07-18 04:42:11

标签: css

我有一个主要的包装div,里面有2个内容div。两个内容div的position属性都设置为relative,但出于某种原因,它们会重叠,如下所示:

divs

我希望以红色标出的div位于蓝色区域之下,并且无法确定如何执行此操作。



#wrap {
  height: 500px;
  width: 350px;
  border: 3px solid black;
}
#upper {
  position: relative;
  width: 40%;
  height: 70%;
  top: 5%;
  left: 2%;
  border: 1px solid blue;
  text-align: center;
}
#lower {
  position: relative;
  width: 40%;
  height: 20%;
  left: 2%;
  border: 1px solid red;
}

<div id="wrap">
  <div id="upper"></div>
  <div id="lower"></div>
</div>
&#13;
&#13;
&#13;

有人可以帮我弄清楚如何正确对齐它们吗?

3 个答案:

答案 0 :(得分:1)

对于较低的div,您可以尝试添加clear:both;

#lowerDiv {
    position: relative;
    clear:both;
    width: 40%;
    left: 2%;
    border: 1px solid red;
    text-align: center;
}

答案 1 :(得分:1)

这是因为你使用高度百分比。你已经采取了上半径的高度是70%。它占据了你主要部门的70%。并且你的低级div拥有的数据多于它在同一个外部div中可以调整的数据。所以你的主要div应该足够大,以便你的lowerDiv可以在提供给它的剩余30%的空间中进行调整。或者你可以调整你的upperDiv的高度百分比值,这样两者都可以在那个空间内调整。

答案 2 :(得分:1)

div#upperDiv的样式有top:5%导致这种情况发生。虽然亲戚但div#upperDiv正在将5%的顶部重叠在div#lowerDiv上。 解决方案:使用顶部:从upperDiv取消5%样式或将相同的顶部样式添加到lowerDiv。