display: flow-root在ie11中完全无效,必须降级使用clearfix(含zoom: 1)或overflow: hidden;clear: both加在浮动元素自身无效,仅对后续非浮动块级兄弟元素生效。

display: flow-root 在 IE11 中完全无效
IE11 对 display: flow-root 完全不识别,会静默降级为 display: block,父容器继续塌陷。这不是“部分支持”,而是彻底忽略——哪怕你写了,它也当没看见。现代写法在这里直接失效,必须 fallback。
.clearfix::after 必须带 zoom: 1 才能在 IE6–IE11 生效
IE6–IE7 需要 *zoom: 1 触发 hasLayout;IE8–IE11 虽支持伪元素,但若父容器未触发 layout,::after 可能渲染异常或清除失败。标准兼容写法是:
.clearfix {
*zoom: 1;
}
.clearfix::before,
.clearfix::after {
content: "";
display: table;
}
.clearfix::after {
clear: both;
}
关键点:
-
display: table比display: block更可靠,避免旧版 IE/Safari 下清除失效 -
::before不是可选——IE6–IE7 对单伪元素支持不稳定,双伪元素是保险动作 -
content: ""缺失会导致整个伪元素不生成,清除逻辑彻底消失
clear: both 加在浮动元素自身上毫无意义
常见错误:<div class="item" style="float: left; clear: both"></div>。这不会撑高父容器,因为 clear 只对标准流中的块级兄弟元素生效,而浮动元素已脱离文档流。浏览器直接忽略该声明。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
真正起效的位置必须满足三个条件:
- 是浮动元素之后的**第一个非浮动、块级、已渲染**元素
- 该元素不能被
display: none或visibility: hidden隐藏 - 它前面必须有实际参与布局的浮动兄弟(不是
display: none或未渲染的)
overflow: hidden 是兜底方案,但得接受裁剪风险
当项目必须跑在 IE11 且无法控制子内容溢出时,overflow: hidden 是唯一无需 JS、纯 CSS 的 fallback。但它不是“清除浮动”,只是触发 BFC 副作用撑高容器。
必须意识到的代价:
- 所有超出父边界的
box-shadow、transform位移、position: absolute子元素都会被裁掉 - 某些 CMS 启用 IE 兼容模式后,该声明可能被整体忽略
- 如果父容器本身需要滚动,
overflow: auto会多出滚动条,破坏预期
真正容易被忽略的是:IE11 下的“兼容”不是让样式看起来一样,而是让高度计算不崩。只要父容器能正确包裹浮动内容,哪怕边框略粗、间距略紧,也比塌陷后整个布局错乱强得多。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










