表示可独立分发或复用的内容,如博客、新闻条目;误用会导致语义混乱,影响seo和无障碍访问;应与、按语义层级合理嵌套。

用 <article></article> 标记真正独立的内容
HTML 中没有叫“独立内容区块”的官方术语,但语义上最匹配的是 <article></article>:它表示能脱离上下文、单独分发或复用的内容,比如博客文章、新闻条目、论坛帖子。
常见错误是把所有“看起来像一块”的内容都套 <article></article>,结果页面里嵌套七八层 <article></article>,搜索引擎和读屏器反而更难理解结构。
- 适用场景:一篇完整博客正文、一条带标题/作者/时间的微博式卡片、一个可被 RSS 抓取的新闻条目
- 不适用场景:侧边栏推荐列表、页脚版权信息、导航菜单——这些该用
<aside></aside>、<footer></footer>、<nav></nav> -
<article></article>可以嵌套,但只在逻辑上成立时才嵌套(例如评论作为独立内容,且每条评论本身也具备完整语义)
<section></section> 不等于“一节视觉区块”
<section></section> 的核心是“主题性分组”,不是“画个框”。它必须有明确的主题,且通常需要搭配 <h2></h2>–<h6></h6> 级标题。
典型误用:用 <section></section> 包裹轮播图、商品推荐位、客服入口——这些只是功能模块,没有内在主题一致性,更适合用 <div> 或更具体的语义标签。<p><span>立即学习</span>“<a href="https://pan.quark.cn/s/cb6835dc7db1" style="text-decoration: underline !important; color: blue; font-weight: bolder;" rel="nofollow" target="_blank">前端免费学习笔记(深入)</a>”;</p><div class="aritcle_card flexRow">
<div class="artcardd flexRow">
<a class="aritcle_card_img" href="/ai/1544" title="AskAI"><img
src="https://img.php.cn/upload/ai_manual/000/000/000/175680241322788.jpg" alt="AskAI" onerror="this.onerror='';this.src='/static/lhimages/moren/morentu.png'" ></a>
<div class="aritcle_card_info flexColumn">
<a href="/ai/1544" title="AskAI">AskAI</a>
<p>无代码AI模型构建器,可以快速微调GPT-3模型,创建聊天机器人</p>
</div>
<a href="/ai/1544" title="AskAI" class="aritcle_card_btn flexRow flexcenter"><b></b><span>下载</span> </a>
</div>
</div>
<ul>
<li>正确用法示例:<code><section><h2>用户评价</h2>...</section>,因为“用户评价”是一个明确主题
<section></section> 里的标题,就看不出这块内容想表达什么主题,那大概率不该用 <section></section>
别忽略 <main></main> 这个隐性“独立内容容器”
一个页面里最多一个 <main></main>,它代表页面最核心、不可替代的主体内容。虽然它不强调“可独立分发”,但它是整个文档的语义中心——对屏幕阅读器和爬虫来说,<main></main> 比任何 <div id="content"> 都更可靠。
<p>容易踩的坑是把它当成“内容区通用包裹”,结果在多个页面重复使用,或和 <code><article></article> 混用导致层级混乱。
- 必须直接子元素是页面主干内容,不能是装饰性元素或辅助导航
- 如果页面是单篇博客,
<main></main>里包一个<article></article>是标准做法 - 如果页面是仪表盘,
<main></main>应包含关键数据视图,而不是把所有卡片都塞进去
嵌套关系与语义优先级
浏览器不强制校验嵌套是否合理,但语义错乱会在实际使用中暴露:比如用 <article></article> 套 <main></main>,或在 <header></header> 里放 <section></section> 却没标题——这些不会报错,但会让辅助技术困惑。
- 推荐层级(自上而下):
→<main></main>→<article></article>或<section></section>→ 更小粒度语义标签(<figure></figure>、<blockquote></blockquote>等) -
<article></article>内部可以有自己的<header></header>、<footer></footer>,但不要在里面再套<main></main> - 当不确定用哪个时,先问:“这段内容能不能被单独 RSS 订阅?能不能被别人直接引用链接?” 能,优先
<article></article>;不能但有明确主题,选<section></section>;否则老实用<div> <p>语义标签的价值不在“写了没”,而在“写得准”。同一个 <code><article></article>标签,用在新闻页和用在用户评论列表里,对机器的理解影响完全不同——这点很容易被忽略,但恰恰是标记是否有效的分水岭。










