请参阅this jsFiddle example以供参考。
我们大多数人都非常熟悉一种简单的技术来获取CSS Colunms(2个div by-side site),其中包括浮动一个并使用margin& amp; width:auto
之后是许多清算技巧之一。 (Exibit A @ jsFiddle Reference)。
这种技术运作良好,可以很好地适用于我个人认识的所有形式的清算:
clear: both
div overflow: hidden
然而,当您知道左侧元素的宽度并希望正确的元素填满其余部分的容器时,这种简单的实现方法很有用。
这种技术在反向(float: right
和使用margin-right
)方面效果很好,但必须先将浮动(右)元素放在容器中,以便IE正确呈现。 (Exibit B @ jsFiddle Reference)
但是,当我们处理嵌套清算时,我注意到了一个问题。 (Aka清除其中一个colunms)。
一旦我将一个清理容器放入未浮动的colunm (Exibit C& D),我注意到WebKit& Gecko浏览器。 清除元素被捕获在外部浮动上并从其父级清除浮动。
主浮点数在左侧时不会发生这种情况。 (Exibit E)
有没有办法解决这个问题,如果可能的话,我想继续在已知宽度列上使用float: right
,这似乎有点奇怪,一个有效,另一个没有。
另外,奇怪的是,这在IE9中不是问题,(但在IE 6-8中)。
作为参考,这是jsFiddle的输出,由Windows 7 64bit上的Chrome 17.0.963.46呈现:
任何想法?
编辑:我应该注意用overflow: hidden
包装内部浮动似乎有效,但是它有它自己的复杂性(这样它基本上会破坏任何具有相对/绝对定位组件的东西, DHTML Dropdown等。并不总是一种可能的解决方案。