我有以下标记:
<body>
<div class="slide">
<header>
<p id="progress">3/20
</p>
<!-- hfill -->
<p id="timer">20:00
</p>
</header>
<div class="question">
<p id="question">What is 2+2?
</p>
...和CSS:
img {
display: block;
}
.slide {
border: 3px solid black;
margin: 5% 10%;
width: 80%;
height: 100%;
}
header {
margin: 0;
height: 10%;
}
header p {
margin: 0;
font-size: 300%;
}
#progress {
float: left;
}
#timer {
float: right;
}
当我使用Google的开发工具时,div.slide的尺寸为1074 x 208像素,标题为1068 x 0像素。为什么标题的高度计算为零?我希望它是其父母的10%。
答案 0 :(得分:2)
你需要清除浮子。通过将两个元素浮动到header
内,它会自动折叠。
添加以下内容,即标准的clearfix:
header:after {
display: table;
clear: both;
content: '';
}
<强> Demo 强>
答案 1 :(得分:0)
由于您的子元素all都设置为浮动,因此该元素将呈现为“空”。
答案 2 :(得分:0)
因为当您浮动标题的内容元素时,它们会从文档流中删除,并且标题会折叠,因为它基本上没有内容。
将overflow:auto
添加到标题的CSS规则中,您将恢复高度。
<强> jsFiddle example 强>
答案 3 :(得分:0)
使用高度百分比不是一个好主意。试试看 Percentage Height HTML 5/CSS和Height in percent when parent has min-height and no height
以百分比形式使用高度
答案 4 :(得分:0)
这是浮动崩溃。如果浮动元素具有非浮动父元素,则父元素将折叠并且看起来具有height = 0。
您可以使用3种解决方案来解决该问题:
overflow:auto