浮动元素脱离文档流并左/右排列,导致父容器塌陷和布局错位,需通过clear、BFC或伪元素清除,曾用于多列布局,现多由Flex/Grid替代。
浮动元素通过脱
离正常文档流并靠左或右排列,影响其他元素的布局方式。理解浮动的行为对掌握传统网页布局非常重要。
当一个元素设置 float: left; 或 float: right; 时,它会从正常的文档流中“浮”出来,不再占据原始空间。后续的块级元素会无视它的存在,向上移动,并可能被它覆盖或环绕。
由于浮动元素脱离了文档流,其父元素在计算高度时无法感知它的存在,常常出现高度为零的情况,这就是“父容器塌陷”。
解决方法包括使用清除浮动(clear)、触发BFC(如 overflow: hidden)或伪元素清除法:
::after { content: ""; display: block; clear: both; }浮动常用于实现多列布局,比如两栏或三栏结构。
使用 clear: both; 可以强制元素出现在浮动元素下方,避免布局混乱。
基本上就这些。虽然浮动曾是主要布局手段,但现在已被更灵活的方案取代,但在处理图文混排或兼容旧代码时仍需了解其机制。