html段落标签必须包裹语义完整的独立文本块,严禁省略闭合标签或合并多个段落;它仅允许嵌套行内元素,禁止包含块级元素;语义正确性直接影响seo、无障碍访问及css控制精度。

直接用 <p></p> 包裹每一段语义完整的内容,别省略闭合标签,也别把两个段落塞进同一个 <p></p> 里——这是最基础、最不可妥协的规范。
为什么不能用多个 <br> 代替 <p></p>
常见错误是这样写:<p>第一句<br>第二句<br>第三句</p>。看起来换行了,但语义上它只是“一段话里的三行”,不是三个段落。搜索引擎、屏幕阅读器、CSS 选择器(比如 p:first-child)都按语义识别,不是按视觉换行数判断。
-
<br>只适用于诗歌、地址、歌词等必须保留在同一语义单元内的强制分行 - 真正需要分段的描述、论点、说明,必须拆成多个
<p></p> - 滥用
<br>会导致响应式断点失效(例如移动端无法单独控制某一段间距)
<p></p> 里能放什么?不能放什么?
可以嵌套 <strong></strong>、<em></em>、<a></a>、<span></span> 这类行内元素;但绝对不能放 <div>、<code><h2></h2>、<section></section> 或另一个 <p></p>。
- 浏览器遇到
<p></p> <div>...</div>会自动在<div> 前闭合 <code><p></p>,造成 DOM 结构意外截断 - 想给一组段落加统一样式或交互?用
<div class="article-body"> <p>...</p> <p>...</p> </div> - 标题不属于段落内容,
<h2></h2>和<p></p>是平级兄弟关系,不是父子关系 - 中文首行缩进:用
text-indent: 2em,不是margin-left或全角空格 - 居中/右对齐:写
style="text-align: center"或统一在 CSS 里写p { text-align: justify; } - 段落间距:改
margin-top和margin-bottom,而不是删默认 margin 再手动加<br> - 如果某段要无间距(比如紧贴标题下方),明确设
margin-top: 0,别指望“不写就等于没”
首行缩进、对齐、间距这些怎么调?
别用 align 属性(HTML5 已废弃),也别靠空 <p></p> 撑间距——这些全是反模式。
最容易被忽略的是语义边界:一个 <p></p> 应该表达一个完整意思,而不是“刚好填满一行”或“我按 Enter 键分的”。换行键不等于段落分割符,这是从写 Markdown 养成的习惯,但在 HTML 里必须主动重构。










