我的印象是,当使用 % 或 auto 作为另一个 div 中包含的 div 的边距时,位置将相对于父 div 计算。
因此,如果我有一个带有 的 div height: 50%
,margin-top: 25%
并且margin-bottom: 25%
该框应在父 div 内垂直居中。
当我这样做时,尽管 div 以页面而不是父 div 为中心。
CSS
div#header {
width: 100%;
height: 100px;
margin: 0px;
position: fixed;
}
div#leftnavigation {
height: 50%;
margin-top: 25%;
margin-bottom: 25%;
float: left;
}
和 HTML
<!--Title and navigation bar-->
<div id='header'>
<!--Left navigation container-->
<div id='leftnavigation'>
<p>efwfwgwegwegweg</p>
</div>
</div>
在我的例子中,还有其他 div 漂浮在上面详述的右侧,但其中任何一个的行为方式相同。我假设我在做一些愚蠢的事情,但我已经解决了所有其他我可以找到的问题,但仍然无法弄清楚。
编辑
这是请求的 JSFiddle http://jsfiddle.net/ChtVv/
更新
我已经尝试删除边距约束并将leftnavigation div设置为height: 100%
,这有效,所以问题出在边距属性上?