标签必须唯一且不得嵌套在、、、中,否则浏览器和爬虫会忽略第二个或报错;它可包含自身和,但多个独立内容应使用而非多个。

main 标签必须唯一且不能嵌套在 header/nav/footer 中
浏览器和爬虫会直接忽略第二个 <main></main>,甚至报 warning;SEO 工具可能丢弃被错误嵌套的 <main></main> 内容。常见错误是把整页包装进 <header></header> 后,又在里面塞一个 <main></main>——这等于告诉搜索引擎:“核心内容在页眉里”,逻辑崩坏。
-
<main></main>只能出现一次,且不能作为<header></header>、<nav></nav>、<footer></footer>、<aside></aside>的子元素 -
<main></main>可以包含自己的<header></header>和<footer></footer>(比如文章标题和发布时间) - 若页面有多个独立内容块(如首页含三篇推荐文章),用
<article></article>包裹每篇,而非多个<main></main>
标题层级必须与语义容器对齐,否则可读性分值反降
搜索引擎和 Lighthouse 等工具会交叉验证 <h1></h1>~<h6></h6> 与语义标签的嵌套关系。错配时不仅不加分,还会触发“结构混乱”警告。
-
<main></main>内部第一个标题必须是<h1></h1>(代表页面主旨),不能是<h2></h2> - 每个
<section></section>或<article></article>应以<h2></h2>起始,子级用<h3></h3>~<h6></h6>,严禁跳级(如<h2></h2>后直接<h4></h4>) -
<header></header>里的<h1></h1>是站点级标题;<article><header><h2></h2></header></article>才是内容级标题——混用会导致权重误判
section 和 article 的使用边界直接影响可读性评分
很多工具(如 axe、Lighthouse)会检查 <section></section> 是否带标题、<article></article> 是否可独立分发。空 <section></section> 或把广告栏硬套 <article></article>,会被标记为“语义滥用”。
-
<section></section>必须有明确主题,且建议紧随一个<h2></h2>~<h6></h6>;纯视觉分隔不用它 -
<article></article>内容需满足“可脱离当前页面独立存在并被聚合”(RSS、分享、存档),博客正文、新闻稿适用,侧边推荐、用户评论不适用 -
<aside></aside>是唯一合法包裹“非主线但相关”内容的标签,比如作者简介、延伸阅读——别用<section></section>冒充
嵌套顺序错乱会让可读性检测直接失败
DOM 解析器和无障碍 API 依赖标签的物理顺序匹配视觉流。CSS 位移或 flex order 造成的“源码顺序 ≠ 阅读顺序”,会导致屏幕阅读器跳过关键内容,Lighthouse 可访问性项直接扣分。
- 语义标签必须按逻辑流书写:
<header></header>→<nav></nav>→<main></main>→<aside></aside>→<footer></footer> - 避免用
display: flex或order改变语义块顺序;真要视觉调整,用grid-template-areas并保持 HTML 顺序不变 -
<nav></nav>必须出现在<main></main>之前(除非是文章内导航),否则会被视为“次要导航”,权重归零
<main></main> 重复、<h1></h1> 错位、<section></section> 无标题这三类问题。不是“用了语义标签就加分”,而是“用错一处,整块结构可信度归零”。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











