我在 Firefox 4.0.1 中发现了一个奇怪的错误(它也发生在 Opera 11.5 中),所以我创建了这个例子来说明这个问题:
如果在 safari 中查看一切看起来都很好,但是当我在 Firefox 或 Opera 中打开它时,具有负边距的 div 内的图像仍会占用下面 div 的空间。
有谁知道解决这个问题的方法?
这是根据 CSS 规范的正确渲染。负边距意味着红色 div 的顶部高于其他情况,但是一旦确定它的顶部是文本的位置,就取决于浮动和 div 的交集。请参阅http://www.w3.org/TR/CSS21/visuren.html#floats以“A line box is next to a float”开头的段落。
您可能想在此处提交有关 WebKit 的错误。
在大多数情况下可行的解决方法是使您的 div 的位置绝对,然后使用顶部/左侧/右侧/底部来控制位置
我在 FF 和 IE9 中也遇到过这个问题...绝对定位的 div 似乎无法识别负边距,尽管使用 top:100px 而不是 margin-top:-100px 似乎在 FF 12 和 ie9 中有效