br 标签的 clear 属性在现代浏览器中完全无效,因 html5 已废弃该属性,br 作为行内元素不生成盒模型、不参与块级布局,clear 仅对块级元素生效;真正清除浮动须用 display: flow-root、clearfix 伪元素或块级元素。

br 标签的 clear 属性在现代浏览器中完全无效
它不是“兼容性差”,而是 HTML5 已明确废弃该属性,浏览器解析时直接忽略,连 warning 都不报。你写成 <br clear="both">,DOM 中根本不会出现这个属性,更不会触发任何布局行为。
br 是行内元素,压根不参与块级布局计算
br 的唯一作用是强制换行,它不生成盒模型(no box),没有 margin、padding、height,也不参与 BFC 或浮动上下文。而 clear 是 CSS 布局属性,只对块级元素生效——br 连“被计算”的资格都没有。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 常见错觉:页面“好像清掉了”,其实是后面恰好有个
p或div自带换行或 margin,跟br无关 - 在 Flex/Grid 布局里加
<br clear="both">,完全无反应,还污染语义 - 屏幕阅读器可能误读为“换行+清除”,但实际无清除逻辑,损害可访问性
真正起作用的清除方式只有三种,且必须作用于块级容器或元素
清除浮动的本质,是让某个块级元素的上边界避开前面浮动元素的下边界。这个计算依赖块级盒模型,br 不满足前提。
- 给浮动元素的父容器设
display: flow-root✅ 现代标准方案,Chrome 64+ / Firefox 59+ / Safari 15.4+ 全支持 - 用伪元素
.clearfix::after,三要素缺一不可:content: ""、display: table(或block)、clear: both - 在浮动元素后插入一个块级元素(如
<div style="clear: both"></div>),但这是冗余结构,不推荐
最容易被忽略的点:clear 不是“重置布局”,而是“位置避让”
很多人以为 clear: both 是让后续内容“从头开始排”,其实它是让当前元素的上外边距起点,下移到所有左侧/右侧浮动元素的底部之下。这个位移计算只发生在块级盒之间。br 没有上外边距、没有盒、不参与流,它连参与这场计算的入场券都没有。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










