法律条文应使用 而非 ,因其不具备独立分发性;编号用纯文本而非 ;转折表述用 class="legal-exception" 标注;须保留“条标-款标”隶属关系以保障效力映射。

法律条款该用 <section></section> 还是 <article></article>?
单独一条法律条文(比如“第十二条:……”)不是独立发布的内容,也不具备完整自包含性,<article></article> 会误导搜索引擎和辅助技术——它本意是表示可独立分发、复用的单元(如一篇新闻、博客)。实际应优先用 <section></section>,配合 aria-labelledby 指向标题,语义更准。
常见错误是把整部《民法典》塞进一个 <article></article>,结果被读屏软件读成“一篇文章”,失去条款层级;或者全用 <div>,彻底丢失结构信息。
<ul>
<li>
<code><section></section> 套每条正文,id 设为 art-12 这类可预测的值,方便锚点跳转和 API 引用
<h3></h3>(不是 <h1></h1>),确保整页大纲层级合理<section></section> 里不要再套 <section></section> 表示款、项——改用 <p class="clause-item"></p> + CSS 编号怎么标记“但书”“除外”这类转折性法律表述?
HTML 没有原生标签表达“但书”,硬套 <aside></aside> 或 <blockquote></blockquote> 反而削弱法律效力——它们暗示非核心内容或引用。正确做法是保持段落流,用 class 显式标注语义,并靠 CSS 视觉区分。
典型场景:合同条款中“甲方有权解除合同,但乙方已全额付款的除外”。这里的“但……除外”不是补充说明,而是构成要件的一部分。
- 给转折句加
class="legal-exception",而非包裹标签 - 不依赖
<em></em>或<strong></strong>作语义标记——它们只表强调,不表法律逻辑关系 - 若需机器可读,可在
data-legal-role="exception"中存结构化提示,供后续解析用
法律文本里的编号(如“(一)”“1.”)能用 <ol></ol> 吗?
不能。HTML 的 <ol></ol> 隐含序数语义(第1项、第2项),但法律编号是法定符号,不是计数结果。“(一)”和“1.”在效力上完全等价,混用 <ol></ol> 会导致编号错乱、无法跨章续编,且破坏法律文本“编号即效力”的刚性特征。
真实问题常出现在从 Word 粘贴时,编辑器自动把“(一)”转成 <ol type="a"></ol>,结果导出 PDF 后编号崩坏,或屏幕阅读器读成“列表项 a”,漏掉括号。
- 所有编号一律用纯文本写在
<p></p>内,例如:<p>(一)当事人应当……</p> - 靠 CSS 的
::before生成编号?不行——法律文本禁止动态生成效力要素 - 需要对齐或缩进?用
text-indent或margin-left,别碰编号本身
PDF 法律文件转 HTML 时最容易丢什么?
不是格式,是“条标”和“款标”的绑定关系。Word 里“第十五条”标题和下面三款文字靠样式关联,转 HTML 时若只保留 <h3></h3> 和 <p></p>,就断开了“哪几款属于第十五条”的结构链,导致无法定位、无法引用、无法比对修订。
这问题在司法裁判文书公开平台最常见:用户点“查看第十七条”,页面滚动到的却是第十六条末尾——因为 <h3 id="art-17"></h3> 被插在了错误位置。
- 转换脚本必须提取原始文档的“标题-段落”隶属关系,写入
data-parent="art-17" - 禁止用
<hr>或空<p></p>分隔条款——它们没有语义,爬虫和法规数据库无法识别 - 扫描版 PDF OCR 后的文本,要人工校验编号连续性;OCR 把“第二十四条”错识为“第二十四奈”这种错误,HTML 层无法自动修复
法律文本的 HTML 不是排版问题,是效力映射问题。编号错一位、层级断一环,下游的法规查询、合同比对、AI 训练数据就全偏了——这点容易被当成“前端细节”忽略掉。











