<p>标签用于定义语义完整的独立段落,必须成对使用、不可省略闭合标签;禁止在其中嵌套块级元素(如<div>、<h2>),仅允许行内元素;其默认上下外边距应通过CSS调整而非删除,首行缩进须用text-indent实现。

直接用 <p> 包裹每一段语义完整的内容,别合并、别省略闭合标签——这是唯一正确且可维护的做法。
为什么不能把两段话塞进同一个 <p>
浏览器和屏幕阅读器只认语义,不认换行键。写成 <p>第一段。第二段。</p>,对机器来说就是“一句话里有两个句号”,不是两个段落。SEO 会降权,无障碍工具会连读,CSS 选择器如 p:first-child 也会失效。常见错误还包括用多个 <br> 模拟分段,这只会生成一个无间距、无结构的文本块。
<p> 里能放什么、不能放什么
可以嵌套:<strong>、<em>、<a>、<img> 等行内元素;
绝对不能嵌套:<div>、<h2>、<section> 或另一个 <p>。
浏览器遇到 <p><div>xxx</div></p> 会自动在 <div> 前闭合 <p>,导致 DOM 结构断裂,样式和脚本行为不可预测。
控制短段落间距和缩进的可靠方式
段落默认已有上下 margin(约 1em),不要删它再手动加空行;
首行缩进必须用 CSS:text-indent: 2em,不是全角空格或 ;
想某段紧贴标题下方?明确设 margin-top: 0,别依赖“不写就等于没”;
居中或两端对齐,写 text-align: center 或 justify,别用已废弃的 align 属性。
最容易被忽略的是语义完整性:一个 <p> 应该表达一个独立意思,而不是“我按了三次 Enter”。从 Markdown 养成的换行习惯,在 HTML 里必须主动重构为多个 <p>。


















