section 是语义容器而非内容生成工具,必须搭配 h1–h6 标题才能被辅助技术识别,无默认样式,仅靠 CSS 控制视觉表现,不当使用会导致结构无效或冗余。

section 标签本身不生成占位文字,也不能“快速填充内容”——它只是语义容器,不是文本生成工具。
为什么用 section 却看不到效果?
常见错误是把 section 当成 div 的替代品,只加标签不加标题、不写内容,结果页面空着一块,还误以为“结构没生效”。
-
section必须配h1–h6标题才能体现语义,否则屏幕阅读器和搜索引擎基本忽略它 - 浏览器不会给
section自动加边距、背景或分隔线,纯靠 CSS 控制视觉表现 - 如果只是想占个位置预览布局,直接用
div+ class 更轻量,比如<div class="placeholder"></div>
占位文字该用什么生成?
真要快速填充示意文案,靠的是外部工具或约定俗成的文本片段,和 section 无关:
- 编辑器里输入
lorem然后按 Tab(VS Code / WebStorm 等支持 Emmet)→ 自动生成<p>Lorem ipsum dolor sit amet...</p> - 在
section内手动塞一段简短说明,比如:<h3>用户评价</h3><p>(此处将显示最近 5 条真实评论)</p> - 避免用“这里是 section”这类无意义注释;辅助技术会读出来,影响可访问性
section 结构容易被忽略的硬约束
不是所有带标题的模块都该用 section,关键看是否构成文档大纲中可被索引的一“节”:
- 同一页面出现多个
section,它们的标题应逻辑并列,不能嵌套成“章→节→小节”(那是article+section+section的组合) - 如果模块只是样式分组(比如为实现两栏卡片布局而加的外层容器),用
div更准确 -
section不该出现在header、footer、nav内部——这些已有明确语义,再套section属于冗余
真正难的不是写对标签,而是判断:这块内容,在一份纯文本大纲里,是否值得单独列一项?想清楚这点,section 就不会用错。

















