使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
html标题必须遵循语义化层级规则:一个页面仅一个h1,h2为h1子节,h3隶属h2且不可跳级;section/article内可重置层级;禁用div模拟标题,避免cms多h1、误用h5作副标题等错误。

<p></p>、<h1></h1>到<h6></h6>、<strong></strong>、<i></i>、<del></del>、<mark></mark>这些标签不是“加个样式”那么简单,它们各自携带语义,浏览器和屏幕阅读器会据此处理内容。用错标签,可能让 SEO 掉权重、无障碍访问失效,甚至影响后续 CSS 选择器的稳定性。
段落标签 <p></p> 的默认行为与常见误用
它不只是“换行”,而是定义一个逻辑段落:浏览器自动添加上下 margin,且语义上表示一段完整意思。很多人用多个 <p></p> 包裹单行地址或短句,反而造成过大间距;更合适的写法是用 <div> 或 <code><span></span> 配合 CSS 控制。
- 别用
<p></p>做纯视觉换行——那是<br>的事 - 不要嵌套标题(如
<p></p> <h2>xxx</h2>),HTML 规范禁止这种结构 -
<p></p>内部可放<strong></strong>、<em></em>等内联元素,但不能直接放<div>、<code><ul></ul>标题层级
<h1></h1>–<h6></h6>的语义约束标题不是“字号从大到小”的排版工具,而是文档大纲的骨架。
<h1></h1>应全站唯一,代表页面核心主题;后续标题必须按逻辑嵌套,不能跳级(比如<h2></h2>后直接写<h4></h4>)。- 搜索引擎和读屏软件依赖这个层级生成导航树,乱序会破坏可访问性
- CSS 可以重置所有
h标签的字体大小,但语义层级不能靠样式“伪装” - 某些 CMS 或静态站点生成器会自动提取
h2–h3生成目录,跳级会导致目录缺失
<strong></strong>和<em></em>不等于<b></b>和<i></i>这是最容易混淆的一组。前者表达语义强调:
<strong></strong>表示内容重要(屏幕阅读器会加重语气),<em></em>表示语气强调(如反语、重音);后者只是视觉样式,无语义含义。- 价格旁写“限时抢购”应该用
<strong></strong>,不是<b></b> - 人名首次出现时标注拼音,用
<ruby></ruby>+<rt></rt>,而非<i></i> - 旧项目里大量
<b></b>标签迁移时,需逐个判断是否该替换为<strong></strong>
<mark></mark>、<del></del>、<small></small>的典型使用场景这些标签有明确语义边界,滥用会削弱 HTML 的可维护性。
-
<mark></mark>仅用于高亮页面中“与当前上下文相关”的文字(如搜索结果中的关键词),不是通用背景色工具 -
<del></del>必须配合新内容出现,例如<del>¥199</del> <ins>¥99</ins>,单独用<del></del>会让辅助技术用户困惑 -
<small></small>专指“边注、版权、法律声明等次要信息”,不是缩小字体的快捷方式;CSS 的font-size更灵活可控
真正难的不是记住每个标签怎么写,而是每次敲下
时,先问一句:“这段内容在文档结构里扮演什么角色?”——语义对了,样式和可访问性才不会翻车。










