<p>标签的核心作用是语义化包裹逻辑自洽、独立完整的自然语言段落,仅允许嵌套行内元素,多段内容应由<section>或<article>等语义容器统一组织,首行缩进用text-indent: 2em,段间距用margin控制。

标签的核心作用是语义化地包裹一段完整、独立的自然语言文本,不是为了换行或视觉分隔而存在。用对了,搜索引擎和屏幕阅读器才能准确理解内容结构;用错了,反而破坏可访问性和SEO效果。
必须用
包裹的情况
符合以下全部条件的文本才适合用
:
- 是一段逻辑自洽、有始有终的叙述性文字(如新闻正文、说明文段落)
- 内容本身属于自然语言,不含交互控件、标题、列表等结构性元素
- 前后需要与其他段落形成语义层级关系(比如文章主体中的连续段落)
不能在
里放什么
HTML规范明确禁止在
内嵌套块级元素。浏览器会自动“修复”错误写法,导致结构断裂:
- ❌ 作者信息
立即学习“前端免费学习笔记(深入)”;
→ 实际被解析为作者信息 - ❌
嵌套段落
→ 第二个会提前闭合第一个,造成意外分段
- ✅ 合法内容仅限行内元素:、、、
、<span>等</span>
多段内容该用什么容器
当一组段落需要统一控制样式或脚本操作时,应在外层使用语义化容器,而不是强行合并:
- 普通分组:用包裹多个
- 文章主体:优先用
或 - 引文段落:用
,内部仍可用
- 地址、署名等非正文内容:用或
首行缩进与段间距怎么设才靠谱
中文排版常用首行缩进2字符、段间空半行。实现方式要兼顾语义与适配性:
- 首行缩进统一用 text-indent: 2em,不用px——字体放大时缩进同步变宽
- 段间距只调 margin(如 margin: 0.8em 0),别碰 padding 或 line-height
- 首段顶距、末段底距建议清零:
.content p:first-child { margin-top: 0; }
.content p:last-child { margin-bottom: 0; }
- 文章主体:优先用



















