如何修复Webkit浏览器的这种奇怪的盒子模型行为?

时间:2011-09-15 22:41:35

标签: html webkit margin css

我今天遇到了一个非常奇怪的Webkit浏览器行为:它涉及在其他(浮动)块旁边计算边距的方式。
虽然我认为这一定是一个常见问题,但到目前为止我找不到任何相关内容。

以下是我的情况:我有两个<aside>后跟一个<div>。它们彼此相邻显示,左侧为<div>.#aside-1#aside-2。我通过以下CSS代码实现了这一点:

aside {
  margin-bottom: 30px;
  padding: 0px 10px 10px;
  width: 180px;
}

#aside-1 {
  float: right;
  margin-left: -400px;
  margin-right: 200px;
}

#aside-2 {
  float: right;
}

div {
  overflow: auto;    /* Block formatting context */

  margin-right: 400px;
  padding: 0px 10px 0px 20px;
}

这在Firefox和IE&gt; 6中工作正常 但是,在Chrome和Safari中发生的情况是,margin-right的{​​{1}}不是从右边界计算的,而是仅从div的左侧计算。这会导致aside-2为200像素(宽度+ div的填充)太小。

导致此Webkit行为的原因是什么?如何解决? 无论如何,非常感谢你的帮助!


好的,所以我测试了一下,想出了一个简单的解决方案):

只需给sidebar-2一个固定的宽度。这当然只有在您的布局基于固定宽度时才有效,对我来说就是这种情况。

1 个答案:

答案 0 :(得分:-1)

尝试使用CSS RESET,这应该可行。 这是一个:http://html5doctor.com/html-5-reset-stylesheet/