必须唯一,用于可独立分发的内容(如博客、新闻),用于主内容下的子模块;可含,但内不可混入搜索框或广告;和是机器可读关键节点,非可选。

main 必须唯一,article 不能套 section 当“容器”用,nav 里塞搜索框或广告就是错的——语义标签不是换汤不换药的 div 别名,它直接决定浏览器怎么读、屏幕阅读器怎么念、搜索引擎怎么索引。
怎么判断该用 section 还是 article
核心看内容是否“可独立分发”:博客正文、新闻稿、论坛回帖这类有完整主题、署名、时间、可被 RSS 抓取的内容,必须用 article;而“产品特性”“用户评价”“常见问题”这类只是主内容下的子模块,没有独立发布价值,就该用 section。
常见错误:
- 把商品列表里的每个商品卡片写成
article(应为section或带role="region"的div) - 在
article外再包一层section(冗余嵌套,破坏语义层级) -
section内没配h2–h6标题(规范要求每个section应有明确主题)
header 和 nav 能不能嵌套?怎么嵌才对
可以嵌套,但必须符合职责分离:一个 header 可以包含 nav,但 nav 里只放导航链接,不能混入 logo 图片(应放 header)、搜索表单(应放 header 或独立 form)、广告位(不属于导航)。
典型结构:
<header><h1>网站标题</h1>
<nav><ul>
<li><a href="/">首页</a></li>
<li><a href="/about">关于</a></li>
</ul></nav><form action="/search"><input name="q"></form>
</header>
如果页面有多个导航区(如顶部主导航 + 文章内目录),每个都该单独用 nav,别全塞进一个里。
使用 PptxGenJS 和 Python 解析,将结构化的 HTML/CSS 幻灯片内容转换为原生、可编辑的 PowerPoint(.pptx)演示文稿。
main 里能放 aside 吗?footer 能不能出现在 article 里
能,而且推荐:main 是页面主体区域,它内部可以合法包含 aside(比如文章右侧的“相关链接”),只要这个 aside 确实是与当前主内容相关但非核心的补充信息。
footer 同样支持嵌套——article 可以有自己的 footer(放作者、发布时间、编辑说明),section 也可以有(放该章节的参考资料),但注意:footer 不能作为 main 的直接子元素来替代页面级页脚(那是 body 级 footer 的事)。
容易踩的坑:
- 在
main外又写一个footer当“页面底部”,结果被解析为第二个页脚(SEO 会降权) - 把整站版权信息塞进
article的footer(应放在body底部的footer) -
aside里放广告或无关推荐(破坏“相关补充”的语义前提)
为什么 time 和 figure 不是“可选加分项”
它们是机器可读的关键节点:time datetime="2024-05-20" 让搜索引擎和日历工具直接提取日期,省去正则匹配;figure + figcaption 组合让屏幕阅读器自动把图和说明当一个单元播报,比 div + p 高出两个无障碍等级。
实操建议:
- 所有发布时间、活动日期、倒计时起点,一律用
time,别用纯文本 - 凡是有图必配
figure,哪怕只是代码截图或流程图;figcaption写具体说明,不是简单重复文件名 -
img的alt和figure的figcaption功能不同:前者是图像缺失时的替代文本,后者是图像的上下文解释,两者都要写,且内容不重复
最常被忽略的是 main 的唯一性和 article 的可引用性——它们不是视觉盒子,而是内容契约。一旦写错,后续加 ARIA、做 SSR、对接结构化数据都会卡在这儿。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










