为什么高度的百分比值不起作用,而宽度的百分比值却可以呢?
例如:
<div id="working"></div>
<div id="not-working"></div>
#working{
width:80%;
height:140px;
background:orange;
}
#not-working{
width:80%;
height:30%;
background:green;
}
#working的宽度最终是视口的80%,而#not-working的高度最终是0。
块元素的高度默认为块内容的高度。假设是这样的:
<div id="outer">
<div id="inner">
<p>Where is pancakes house?</p>
</div>
</div>
#inner将增长到足够高以包含段落,#outer将增长到足够高以包含#inner。
当你以百分比的形式指定高度或宽度时,这是相对于元素的父元素的百分比。在width的情况下,除非另有指定,否则所有块元素都与它们的父元素一样宽,一直到<html>;因此,block元素的宽度与它的内容无关,width: 50%表示一个明确定义的像素数。
但是,块元素的高度取决于它的内容,除非您指定了特定的高度。因此,在父元素和子元素之间存在关于高度的反馈,并且说高度:50%不会产生一个定义良好的值,除非你通过给父元素一个特定的高度来打破反馈循环。