【发布时间】:2012-03-02 00:47:58
【问题描述】:
这是一个谜题。基本页面,一个元素:
HTML:
<div id="container"></div>
CSS:
body, html {
height: 100%;
margin: 0;
padding: 0;
background-color: black;
}
#container {
position: relative;
margin: 0 auto;
width: 400px;
height: 100%;
background-color: #666;
}
那个看起来像我想要的那样,#container 整齐地齐平到顶部。但是当我添加一个嵌套元素时:
HTML:
<div id="container">
<nav id="topnav"></nav>
</div>
CSS(新):
#topnav {
width: 100%;
height: 40px;
margin: 30px 0;
background-color: red;
}
容器跳下。似乎#topnav 的margin-top 以某种方式传递给了容器,现在页面有一个我不想要的滚动条。 (我正在 Chrome 中进行测试。)如何防止这种情况发生?
(还有一个谜团,如果我将 border: 1px solid white; 添加到 #container 的 CSS 中,跳转就会消失。这很好,除了还会在页面上添加两个像素的不良滚动。)
【问题讨论】:
-
您正在为已经 100% 高的东西添加边距。改用填充。
-
@Diodeus 导航不是 100% 高度,容器是。容器没有声明垂直边距。
标签: css html positioning