Firefox边缘css的古怪行为

时间:2013-04-28 20:10:07

标签: css firefox margins

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

1 个答案:

答案 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/

如果在你的情况下这不起作用,也有反黑客攻击。请参阅上面的错误报告。