HTML中换行符被忽略是因解析规则将连续空白(含换行)压缩为单个空格;<p>的换行由CSS盒模型控制,段落内强制换行须用<br>而非源码回车。

为什么
标签里不能直接用换行符实现换行
浏览器会忽略 HTML 源码中的多余空白和换行,<p></p> 是块级元素,它的换行行为由 CSS 盒模型控制,不是靠回车或 \n。你在编辑器里敲了三行文字,写成这样:
<p>第一行 第二行 第三行</p>
实际渲染效果仍是连成一行(除非内容超宽自动折行)。这是 HTML 解析规则决定的,不是 bug。
- 所有连续空白符(空格、制表符、换行)被压缩为单个空格
-
<p></p>的“段落感”来自默认 margin,不是内部换行 - 想在段落内换行,必须用
<br>,而不是敲回车
<br> 和 <p> 的使用边界在哪
简单说:<br> 是「同一语义单元内的强制换行」,<p> 是「不同语义单元的分隔」。比如地址、诗歌、签名档这类本就属于一个自然段但需视觉分行的内容,适合用 <br>:
<p>北京市朝阳区建国路8号<br>SOHO现代城A座1203室<br>邮编:100022</p>
- 用多个
<p>会破坏语义结构,搜索引擎和屏幕阅读器会误判为三个独立段落 -
<br>是空元素,没有闭合标签,写成<br>或<br />都可(HTML5 推荐前者) - 滥用
<br>做布局(比如为了留空而连写三个)会导致响应式失效,应改用 CSSmargin或padding
加粗/斜体该用 <b> 还是 <strong>
语义优先:<strong> 表示内容重要性提升,<b> 仅表示视觉加粗。两者默认样式一样,但含义不同:
立即学习“前端免费学习笔记(深入)”;
- 强调关键操作提示(如“删除后不可恢复”)用
<strong> - 专有名词、产品名、技术术语等无需强调语义但需突出显示时,可用
<b> - 屏幕阅读器对
<strong>通常会加重语气,对<b>则无特殊处理 - 不要用
<b>替代 CSS 的font-weight做样式控制
哪些格式化标签已不推荐使用
HTML5 明确废弃了纯表现型标签,包括:<u>(下划线)、<s>(删除线)、<big>、<center>。它们的问题不是“不能用”,而是:
-
<u>容易和链接混淆,语义模糊;应改用<mark>(高亮)或 CSStext-decoration: underline -
<s>不表达删除意图,正确语义是<del>(已删除内容)或<ins>(新增内容) -
<big>和<center>完全属于样式范畴,必须用 CSS 替代 - 部分老浏览器对废弃标签支持不稳定,尤其在无障碍访问场景下
真正容易被忽略的是:即使你没主动写这些标签,某些富文本编辑器或 CMS 后台会悄悄输出 <u>,上线前建议检查源码。



















