标签不能嵌套,因HTML规范禁止块级元素嵌入段落中;浏览器会自动闭合生成结构,导致语义断裂、布局错乱和DOM异常。

标签不是换行符,也不是撑间距的工具;它只干一件事:标记一个语义完整的文本单元。用错就等于把整篇文章塞进一个“黑箱”,SEO、屏幕阅读器、CSS 控制全会失效。
为什么 p 标签必须闭合且不能嵌套块级元素
浏览器遇到 把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
前闭合 ,导致 DOM 结构意外截断——你写的 HTML 和实际渲染的 DOM 可能完全不一致。
- 常见错误:
标题
正文 —— 会被踢出 ,变成兄弟节点,语义断裂
- 正确做法:标题和段落是平级关系,应写成
标题
正文
- 诗歌、地址等需强制保留换行的场景,用
或
,别硬塞进
text-align 是唯一靠谱的对齐控制方式
align 属性在 上已彻底被 HTML5 废弃,Chrome 120+、Firefox 128、Safari 17+ 直接忽略,仅 quirks mode 下可能偶然生效——这不是兼容,是历史残留。
- 错误写法:
居中文字
,Lighthouse 扫描直接报错
- 正确写法:
居中文字
,或定义 CSS 类 .text-center { text-align: center; }
-
text-align: justify 对中文默认无效,需加 text-justify: inter-character(仅 Chromium 支持),且要求容器有明确宽度 + 文本足够长才能换行拉伸
段落间距和首行缩进必须用 CSS 控制
别用空 撑空白,也别靠
模拟段落分隔——这会让 CSS 无法精准控制,响应式断点也容易崩。
- 首行缩进统一用
text-indent: 2em,不是 margin-left 或全角空格
- 段落间距改
margin-top 和 margin-bottom,默认值是 1em,删了再手动加反而更难维护
- 某段紧贴标题下方?明确设
margin-top: 0,别指望“不写就等于没”
- 想批量控制一组段落?用容器包裹:
...
...
最容易被忽略的其实是语义边界:一个 应该表达一个完整意思,而不是“我按了 Enter 键”或“刚好填满一行”。换行键 ≠ 段落分割符,这是从 Markdown 养成的习惯,在 HTML 里必须主动重构。










