双飞翼布局中浮动栏位重叠本质是父容器高度塌陷,因所有浮动元素脱离文档流所致;必须给.g-container设置display:flow-root触发bfc,而非依赖overflow:hidden或仅调margin。

双飞翼布局里浮动栏位重叠,本质是文档流断裂
不是“左右栏盖住了中间内容”,而是所有浮动元素脱离文档流后,父容器高度塌陷,导致后续内容上浮、视觉错位。你看到的“重叠”,其实是中间内容在文档流中本该占据的位置被浮动元素视觉占用了,而它自己又没撑起父容器高度。
必须给 .g-container 触发 BFC,不能只靠 float
双飞翼结构中,.g-left、.g-right、.g-middle 全部 float: left,但父容器 .g-container 若没创建块级格式化上下文(BFC),就会塌陷——这是重叠的根源。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 别用
overflow: hidden:它虽能触发 BFC,但会裁掉下拉菜单、弹窗等需要溢出的内容 - 优先用
display: flow-root:语义明确、无裁剪副作用,现代浏览器全覆盖(Chrome 64+、Firefox 59+、Safari 15.4+) - 兼容旧版可退阶为
::after { content: ""; display: table; clear: both; },加在.g-container上
margin-left 负值只偏移视觉位置,不修复文档流
双飞翼靠 .g-left 的 margin-left: -100% 和 .g-right 的 margin-left: -300px 把它们“拽”回可视区域,但这只是视觉挪动,它们在文档流中的占位依然存在。
-
margin-left: -100%是相对父容器宽度计算的,若父容器宽度变化(如响应式断点),负值可能失效 - 不要对
.g-middle-inner再加margin来“避让”侧栏——它已通过外层.g-middle的margin预留空间,重复设置易导致错位 - 检查是否误在
.g-middle或.g-container上写了overflow: hidden:这会让.g-middle-inner的左右margin被截断,内容直接顶到侧栏边缘
移动端 Safari 下 z-index 失效时,别硬调数值
双飞翼中若侧栏有下拉交互,常遇到 Safari 里下拉菜单被盖住。这不是 z-index 不够大,而是浮动 + 定位混用时层叠上下文被意外截断。
-
z-index只对position: relative/absolute/fixed生效,浮动元素本身不参与堆叠层级 - 确保下拉容器的直接父级(如
.g-left)设了position: relative,否则下拉元素会相对于body定位,飘移出预期区域 - Safari 15–16 对
z-index+float兼容差,临时加transform: translateZ(0)比盲目调高z-index更可靠
margin 和 z-index,却漏掉了 .g-container 是否真正包裹住了三个浮动子项——这才是最常被跳过的那一步。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










