以下是html代码,
<div class="simple">
<nav class="fancy">
<li>text</li>
<li>text</li>
<li>text</li>
<li>text</li>
</nav>
</div>
以下是css代码,
div, nav{
border: 1px solid red;
}
.simple{
max-width: 400px;
position: relative;
}
.fancy{
width: 100px;
position: absolute;
}
为什么nav
元素的绝对定位会使div
元素的高度为零?
答案 0 :(得分:3)
绝对定位的元素将从正常流量中取出。在计算父母的(自动)高度时,只计算正常流量中的元素。当您删除花哨时,简单中的正常流程中不再有任何元素,因此其计算高度变为0
。
答案 1 :(得分:1)
因为.simple
在内部“无”时崩溃。基本上,如果<div>
中没有任何内容,则高度变为零。要覆盖它,您应该使用min-height
参数,例如
.simple{
max-width: 400px;
position: relative;
min-height: 100px;
}
100px就是一个例子。您也可以使用%。 这里工作小提琴:http://jsfiddle.net/arcsn/c6my0yva/