根据height
的规范,元素的包含框需要有一个明确的height
,以使百分比高度在元素上工作(即在所有父包含框中使用的数值为100%
高度)。为什么百分比宽度工作,即使没有给出包含块的明确宽度值?
但是,为什么相同的规则似乎不适用于百分比width
?当我设置一个百分比width
在一个包含框没有明确的width
的元素时,它似乎仍然会改变元素的宽度。 (见实施例)
.first {
background-color: teal;
}
.second {
background-color: gold;
width: 30%; /* the '.second' box becomes narrower! */
height: 40%; /* <-- doesn't have any effect */
}
<div class="first">
""
<div class="second">
""
</div>
</div>
所以你想知道为什么你不必为div等块级元素设置宽度? – arnolds 2015-02-05 20:46:18
是的,宽度为50%的嵌套div如何知道它应该占用50%的值?由于包含块没有明确的宽度设置(即没有宽度100%来源于主体,也没有明确的px宽度) – rrazd 2015-02-05 20:50:09
这是因为它是一个块级元素,HTML中的所有块级元素的默认宽度为100%为什么他们跨越浏览器窗口的宽度。内联元素如图像和链接不会,它们只是扩展到它们的内容长度。 – arnolds 2015-02-05 20:57:55