应为有明确主题且可独立命名的区块使用,必须配标题,否则语义失效;而仅用于样式或脚本控制时应选div;section强调文档内逻辑分组,article侧重可独立分发内容。

<section></section> 不是“内容区”的通用容器,它只适用于有明确主题、能被单独命名或出现在大纲里的区块。
什么时候该用 <section></section> 而不是 <div>
<p>关键看这块内容是否具备可独立识别性:</p>
<ul>
<li>能起一个准确标题(比如「部署步骤」「用户反馈」「兼容性说明」),且这个标题在文档大纲里有意义</li>
<li>内容可被单独引用、跳转或提取(例如 SEO 工具能把它识别为一个逻辑单元)</li>
<li>它和同级其他 <code><section></section> 是并列关系,不是父子嵌套控制结构
<div class="..."> 更合适
<h3>
<code><section></section> 必须配标题,否则语义断裂
HTML5 规范明确建议:每个 <section></section> 应包含一个 <h2></h2>–<h6></h6> 标题。没标题的 <section></section> 在实际中会失效:
- 屏幕阅读器可能跳过它,或降级为普通
<div> <li>自动大纲生成工具无法建立层级,导致导航混乱</li> <li>搜索引擎可能弱化其内容权重,尤其当页面缺乏清晰结构时</li> <li>如果你硬是想不出标题,大概率说明它不该是 <code><section></section>——换<div> 或直接删掉标签 <h3> <code><section></section>和<article></article>的边界在哪两者都强调“独立性”,但独立的维度不同:
立即学习“前端免费学习笔记(深入)”;
-
<article></article>是可独立分发、重用的内容单元(如一篇博客、一条新闻、一个评论),自带完整上下文 -
<section></section>是为组织内容服务的语义分组,依赖所在文档存在(比如「技术原理」段落只能在当前教程里成立) - 一个
<article></article>内部可以有多个<section></section>(如「背景」「方法」「结果」) - 反过来不成立:
<section></section>里不能塞<article></article>来“撑语义”——除非真有多个可独立存在的内容项
最容易被忽略的一点:语义标签不是靠“写了就生效”的,而是靠“写得对+用得准”才起作用。一个没标题的
<section></section>,和一个套了五层<div> 的页面,在机器眼里可能一样空洞。</div> -



















