首页 >web前端 >css教程 >为什么我的浮动 Div 不调整后续 Div 的大小?

为什么我的浮动 Div 不调整后续 Div 的大小?

Barbara Streisand
Barbara Streisand原创
2024-10-28 08:34:02325浏览

Why Does My Floated Div Not Resize the Subsequent Div?

Float 不调整 Div 大小的奥秘

使用 CSS float 时,假设后续元素将左对齐而不是流到新元素上线。然而,在某些情况下,例如提供的示例,以下 div 继续跨越整个宽度,而不是从第一个 div 的右侧开始。

为了理解这种行为,我们深入研究 float 的复杂性定位。当元素浮动时(在本例中为 .inline div),其下方的内容与该元素的右侧对齐。但是,由后续元素(.yellow div)建立的包含块的宽度仍然保留。

CSS 规范中概述了这种行为:未定位的块框垂直流动,就好像浮动没有一样存在。但是,浮动旁边的行框会缩短以容纳浮动的边距框。

因此,如果块级元素(如 .yellow div)具有背景,它将延伸穿过浮动元素。

解决方案

根据 CSS level 2.1,具有某些属性的元素(块级替换、建立新的块格式化上下文的元素)不得与任何浮动在相同的上下文中。向 .yellow div 添加“visible”以外的“overflow”属性可防止其与浮动元素重叠。

重叠何时有用

重要的是请注意,当浮动元素后面的内容足够长以正常继续的情况下,重叠可能会很有用。默认情况下限制内容可能会导致其无法在浮动元素下方流动。

以上是为什么我的浮动 Div 不调整后续 Div 的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn