带溢出的元素:自动受浮动元素影响



有人能向我解释为什么溢出会产生以下效果吗。

在下面的jsfiddle中,我有一个向左浮动的Div,设置了宽度和高度。接下来我有一个Contentdiv。你可以把它看作是一个左导航和一个网站布局的内容。

在内容中,我有两个相同的Div,除了一个有溢出:auto,另一个没有。带有overflow的:auto当前尊重浮动div并缩短其宽度以避免与之冲突。Were是因为另一个只是保持其全宽并在浮动div下方运行。

尽管overflow:auto给出了一个非常用户化的行为,但我不明白它为什么关心浮动项。我认为,如果一个元素有一定的宽度,而里面的内容无法容纳,那么它会执行您要求的行为,但这是将行为应用于元素本身

http://jsfiddle.net/9bEDj/1/

有人能为我澄清这一点吗?并解释为什么会有这种行为,或者它是否真的不应该这样做,这是一种怪癖!

以下是关于浮点/溢出魔术的精彩描述
http://colinaarts.com/articles/the-magic-of-overflow-hidden/

这是预期的行为,具有溢出而非可见的元素应该尊重浮动,因此您可以在不引起任何模糊的情况下使用它

之所以会发生这种情况,是因为设置overflow会建立一个新的块格式化上下文,并且块格式化上下文不会与浮点值重叠。

最新更新