

新闻资讯
技术学院::after清除浮动是通过在父容器末尾插入隐形块级伪元素并设置clear: both,使其下压至浮动元素底部从而撑开父容器高度;它不污染HTML、语义干净、不影响DOM与可访问性,content: ""和display: block(或table)是关键前提。
因为浮动元素会脱离文档流,父容器“看不见”它们的高度,导致自身塌陷——::after 本质是往父容器末尾悄悄塞一个“隐形块”,靠 clear: both 把它压到所有浮动元素下方,从而把父容器高度“撑起来”。
它不污染 HTML 结构:不用在页面里硬写一个空标签,纯靠 CSS 动态生成;语义干净、维护成本低。伪元素只存在于渲染树中,不影响 DOM 和可访问
性。
浏览器渲染时,对设置了 .clearfix::after 的容器,会在其内容流的最后插入一个匿名块盒。这个盒子虽然没内容、不可见,但它参与布局计算:
早期用 display: block 有时在某些场景下(比如内联上下文)表现不稳定;而 display: table 会隐式创建 BFC,既能清除浮动,又能避免外边距合并等副作用,还兼容老浏览器。
::after 是“打补丁式修复”,核心目标是解决塌陷;而 display: flow-root 是直接让父容器成为新的 BFC 根,从机制上阻止浮动逃逸。前者兼容性极广(IE8+),后者更简洁但 IE 不支持。