【发布时间】:2015-07-03 10:20:20
【问题描述】:
我试图了解 Chrome 和 Firefox 之间的行为差异。我已经发布了following CodePen 来说明这一点。
在 Firefox 中,由于应用了 margin-top: -50px,页脚元素会粘在包装 div 的底部。这是我所期待的。
对于 Chrome(和 IE),p 元素的margin-bottom下推页脚,使其溢出。这是为什么呢?
html, body {
margin: 0px;
height: 100%
}
header {
background-color: dodgerblue;
opacity: 0.5;
}
#wrapper {
background-color: tomato;
position: relative;
min-height: 100%;
}
#container p {
background-color: lightgreen;
width: 500px;
/*margin-bottom: 0px;*/
}
footer {
height: 50px;
background-color: dodgerblue;
margin-top: -50px;
opacity: 0.5;
}
<body>
<div id="wrapper">
<header>.</header>
<div id="container">
<p>.</p>
</div>
</div>
<footer></footer>
</body>
【问题讨论】:
-
min-height:100%将成为您的问题,因为您的包装 div 不包含页脚元素。 -
您的其中一种颜色也有错字,dogerblue 而不是 dodgerblue。
-
@BrianDriscoll 但这并不能解释浏览器之间的差异;
margin的行为应该是明确定义的。 -
@MrLister 鉴于所提供的 CSS,我相信它在 Chrome 和 IE 中的行为符合预期。
-
好吧,我没有真正的答案(它可能与折叠边距有关,但我无法解释为什么 FF 和 Chrome 以不同的方式折叠边距),或者真正的解决方案 - OP 已经在代码中注释掉了
margin-bottom:0- 但既然这样就行了,为什么不使用它呢?或者,更彻底的技巧是#container p:last-child {margin-bottom:0},这样您的容器中就可以有多个段落。或许可以输入padding-bottom:1em以取得好成绩。
标签: css