[英]Strange extra spacing between header and body when extra element is added
我有以下HTML
<body>
<header></header>
<h2>Title</h2>
</body>
使用以下CSS
html {
height: 100%;
}
body {
height: 100%;
margin: 0;
}
header {
float: left;
background: black;
height: 100%;
width: 150px;
}
IE10,Chrome 26和Firefox 20都在顶部显示了不必要的额外空间,以及滚动条。
删除h2元素会导致此空间消失。
我的问题是,发生了什么? 是否有HTML布局规则解释了为什么要添加空间?
这是由您的<header>
元素显示为浮动元素引起的。 默认情况下,块级元素水平扩展以填充整个父容器,并且还延伸回任何浮动内容 。
您的块级<h2>
元素实际上在屏幕左上角的0,0
点处开始清除,并从那里获得其默认的margin-top以将文本向下推。 然后,您的浮动 <header>
元素从该边距开始向下与新文本位置内联,如下所示:
解决这个问题的一个简单方法是使用填充而不是边距(如果您需要<h2>
上方的空格但不高于所有内容)。 请参阅jsFiddle示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.