article内嵌套section是合理且推荐的,但每个section必须有明确主题和h2–h6标题,不可跳级,不得无标题或用于纯样式容器,嵌套不宜超两层,且section不赋予独立分发性。

article内部嵌套section是合理且推荐的
能,而且应该这么做——前提是每个section都有明确主题,并配一个<h2>到<h6>标题。这不是“语法允许”,而是语义要求:一篇完整文章(article)天然可划分为多个逻辑子块,比如「背景」「实现步骤」「性能分析」,这些就是section的典型场景。
不带标题的section在article里等于没写
屏幕阅读器、Chrome DevTools 的 Accessibility 面板、甚至 RSS 解析器,都会忽略没有标题的section。它不会被识别为独立逻辑单元,反而增加 DOM 层级却无实际语义收益。
-
section必须包含至少一个<h2>–<h6>(不能跳级,比如article用<h1>,里面section就该从<h2>起) - 标题不必紧贴
section开头,但必须在同一个section元素内(可以前面有说明性<p>) - 别用
section包纯样式容器、图片卡片或 JS 挂载点——那些该用div
嵌套深度超过三层会破坏可访问性
article → section → section → section 这种结构,会让读屏软件导航困难,也违背 HTML5 大纲算法的设计初衷。实际项目中,两层嵌套(article > section)已覆盖绝大多数场景;第三层应优先考虑是否真需要独立语义,还是仅需 CSS 分组。
- 常见合理结构:
article>section(如「兼容性说明」) >section(如「Chrome 支持情况」)——但第二层section必须有<h3>,且与父section构成清晰的父子主题关系 - 反例:
article>section>section>section,每层都只有段落和列表,无实质主题分层 - 如果内容实在复杂,宁可用多个并列
section,也不靠深层嵌套硬撑
section嵌套在article里不改变其“可分发性”
article代表的是整篇可独立复用的内容单元(比如能被 RSS 抓取、阅读模式提取),而里面的section只是它的组成部分,不具备单独分发价值。这点常被误解:有人以为嵌套section能让某一段落变成“独立文章”,其实不会。
立即学习“前端免费学习笔记(深入)”;
-
article的时间戳(<time datetime="">)、作者信息、标题,属于整篇内容,不因内部section数量变化而改变 - 不要为了“让某段看起来更重”而在
article里塞一个没上下文的section——它得服务于整体叙事逻辑 - 若某块内容确实能脱离当前
article独立存在(比如一篇引用的第三方技术报告),那它本身就应该是一个独立的article,而不是section
section在代码里存在,但在辅助技术眼里根本不存在。



















