<p>标签语义是独立段落,须含完整语义单元,禁嵌块级元素,视觉样式应由CSS统一控制,避免碎片化使用。

标签不是换行工具,也不是样式容器——它明确表示“这是一个独立的段落”,浏览器、搜索引擎和屏幕阅读器都依赖这个语义做解析。
为什么
不能当
用
常见错误是用 <p> 包裹单行短句(如按钮文案、标题副标),或靠它强制换行:<p>姓名:</p><p>张三</p>。这破坏了段落的语义完整性——段落应包含完整语义单元,比如一个观点、一段叙述、一个解释。
- 搜索引擎会弱化这类碎片化
<p>的权重,认为内容组织混乱 - 屏幕阅读器可能把连续多个
<p>读成“段落、段落、段落”,打断语义流 - 默认上下边距会意外撑开布局,尤其在 flex/grid 容器里造成对齐错位
里能嵌什么?不能嵌什么?
<p> 是文本级容器,只允许嵌入**短语级内联元素**,比如 <strong>、<em>、<a>、<span>、<time>。它明确禁止嵌套块级元素——<div>、<h2>、<ul>、甚至另一个 <p> 都会触发浏览器自动闭合或重排。
- 写
<p>说明文字<div>操作区</div></p>,浏览器实际解析为:<p>说明文字</p><div>操作区</div> - 想强调某句,用
<p>这是关键结论,<strong>请务必注意</strong>。</p>是合法且推荐的 - 需要结构分组,优先用
<section>或<article>,而不是塞进<p>
line-height 和 text-indent 该不该写在
上?
可以设,但不建议用 style 属性硬编码,更不该用 <br> 模拟首行缩进。段落的视觉表现(行高、缩进、间距)属于表现层,应由 CSS 统一控制。
立即学习“前端免费学习笔记(深入)”;
- 正确做法:给所有
<p>设统一类名,如<p class="body-text">,再在 CSS 中定义.body-text { line-height: 1.6; text-indent: 2em; margin-bottom: 1rem; } - 避免:
<p style="line-height:20px;text-indent:24px">—— 后续改设计时得逐个找、逐个改 - 特别注意:移动端 viewport 缩放时,固定像素的
line-height可能导致行间挤压,推荐用无单位数值(如1.6)
真正难的不是怎么写 <p>,而是判断哪段文字配得上“段落”这个身份——它得有起承转合,哪怕只有两句话。



















