<hr> 不适合用于故事章节转换,因其语义仅为段落级主题变更,不表示层级提升或内容单元起始,无法被屏幕阅读器识别为导航节点,也不能构建文档大纲;正确做法是用 <section> 包裹配 heading 标题,视觉分隔交由 CSS 实现。

<hr> 不适合用于故事章节转换——它表示主题分隔,不是结构分界,强行用会破坏文档大纲和辅助技术体验。
为什么 <hr> 不是章节分隔符
<hr> 的语义是“段落级主题变更”,比如演讲中突然切换话题、博客里插入一段无关的轶事。它不表示层级提升或内容组织单元的开始,因此不能替代 <section>、<article> 或 heading 元素。屏幕阅读器通常将其读作“水平线”或略过,不会触发导航级跳转。
常见错误现象:
• 章节间加 <hr> 后,语音朗读无停顿提示或章节名识别
• 用浏览器大纲插件查看时,章节未出现在结构树中
• 搜索引擎无法准确提取章节标题与内容归属关系
真正该用什么标记章节转换
章节是逻辑独立的内容块,需靠语义化容器 + 标题组合表达:
立即学习“前端免费学习笔记(深入)”;
- 每个章节用
<section>包裹(或<article>,若章节可独立分发) - 章节开头必须有且仅有一个 heading 元素(如
<h2>),不可省略 - 若需视觉分隔,用 CSS 控制
section + section的上边距或 border,而非插入<hr>
示例片段:
<section> <h2>第一章:雾中的灯塔</h2> <p>海风卷着咸味扑来……</p> </section> <section> <h2>第二章:锈蚀的门环</h2> <p>他伸手触碰那扇铁门……</p> </section>
什么时候可以保留 <hr>?
仅当某处确实存在“非结构性、临时性、弱关联”的中断时才适用,例如:
- 日记体小说中,主角撕掉一页纸后的留白(
<p>……字迹戛然而止</p><hr><p>[下一页,墨水洇开]</p>) - 访谈记录里,受访者突然离席又返回的间隙
- 注释区之前插入一条线,表明正文章节结束、附录开始(此时仍建议用
<hr aria-hidden="true">并确保前后有 heading)
关键判断标准:删掉这根线,读者是否仍能清晰识别章节起止?如果不能,说明它承担了本该由 heading 和 <section> 承担的职责——那就该换掉。
最易被忽略的一点:章节语义不靠视觉分隔线成立,而靠 heading 的层级嵌套和容器元素的显式声明。哪怕所有样式关闭,大纲依然可读,这才是真正可靠的章节表达。



















