合法,但需符合语义逻辑:w3c允许section嵌套section,前提是每层均有标题且构成独立主题节;无标题嵌套会导致大纲混乱、可访问性下降。

section 嵌套是否合法?
合法,但不推荐无意义嵌套。W3C 明确允许 section 嵌套 section,前提是内层 section 仍构成一个有标题、有主题的独立内容节——比如一篇论文的“2.1 实验方法”嵌套在“2 实验”下。
- 没有标题的
section嵌套,会被视为语义退化,等同于用div却硬套语义标签 - 浏览器和屏幕阅读器会将其纳入文档大纲(
document-outline),多层无标题嵌套会导致大纲混乱,影响可访问性 - 构建组件库或 CMS 模板时,若依赖 JS 动态插入内容,嵌套
section可能干扰自动生成的目录逻辑
article 里能不能放 section?
可以,而且是标准做法。一个完整的 article(如博客正文)天然包含多个逻辑小节:引言、方法、结论等,每个都适合用 section 划分。
-
section在article内表示“该文章内部的主题分组”,不破坏其独立性 - 每个
section应带h2–h6标题(不能跳级,如article用h1,其内section就该用h2) - 避免把纯装饰性容器(如仅为了 flex 布局的包裹层)写成
section,这类该用div
section 里能不能放多个 article?
可以,典型场景就是卡片流布局:一个“最新文章”区块用 section 包裹,内部并列多个 article。
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
- 这种结构清晰表达「这些 article 彼此相关,共属同一主题上下文」,比如“用户评论区”“同类商品列表”
- 不要反过来用
article包一组不相关的article——article表示“独立可分发单元”,它本身不承担归类职责 - 若该
section没有明确标题(如仅靠 CSS 视觉区分),就失去语义价值,此时应改用div
容易被忽略的兼容性与工具链问题
现代浏览器对 section 和 article 的解析一致,但实际开发中几个点常被漏掉:
- SSR 框架(如 Next.js、Nuxt)若未正确设置
lang="zh"或未声明,部分旧版辅助技术可能降级处理语义标签 - 使用
outline查看文档结构时(DevTools → Elements → 右键 → “Show outline”),嵌套过深或标题缺失会直接暴露语义断裂 - 自动化 SEO 工具(如 Lighthouse、axe)会将无标题的
section标为“低语义得分”,影响可访问性审计结果 - JSDOM 或测试环境模拟 DOM 时,若未启用完整 HTML5 解析模式,
section可能被当普通div处理,导致断言失败
真正难的不是语法对不对,而是每次写 section 前得问一句:它在大纲里该不该有一行?有没有人(包括机器)需要靠它理解内容层级?
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










