我今天遇到了一个非常奇怪的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
一个固定的宽度。这当然只有在您的布局基于固定宽度时才有效,对我来说就是这种情况。