Firefox中的边距设置发生了一些奇怪的事情,我有一个id为“wrap”的div,顶部边距为20px,当用户登录div时,在div div上方出现id为user_nav的I不希望在这个div之上有任何余量,但Firefox是为了一些未知的reaslon传播我在换行div上的上边距到它上面的user_nav div,它不会在任何其他浏览器中发生。
如果我从包装div中删除了上边距,则将其从两者中删除。
我可以通过给user_nav div一个负上边距来摆脱它,但这会弄乱所有其他浏览器。
div#user_nav {
width: 980px;
margin: 0 auto;
}
div#wrap {
width: 980px;
margin: 20px auto 30px auto;
}
有关正在发生的事情的任何想法?
由于
Rob Fenwick
答案 0 :(得分:1)
这确实是古怪的行为 - 它似乎是这个与清除块元素(或其中许多重复的元素之一)相关的旧bug的影响之一:
https://bugzilla.mozilla.org/show_bug.cgi?id=451791
绕过它的一种方法是摆脱<div class="clear">
并使用溢出方法清除(虽然这不是总是可能,例如 - 显然 - 如果你有内容被清除的元素将延伸到它之外):
http://www.quirksmode.org/css/clearing.html
即,从<div class="clear">
内删除user_nav_frame
并在CSS中应用overflow: hidden
(和width: 100%
),而不是清除浮点数:
div#user_nav_frame {
background-color: #0A4D84;
overflow: hidden;
width: 100%;
}
JSFiddle:http://jsfiddle.net/69aD9/2/
如果在你的情况下这不起作用,也有反黑客攻击。请参阅上面的错误报告。