footer 是 HTML5 语义化标签,表示内容区块逻辑结尾而非视觉底部;它提升 SEO、无障碍访问和代码可维护性,可嵌套于 body/article/section 内,但不可滥用作布局或放主导航、广告等语义无关内容。

footer 是 HTML5 引入的语义化标签,**不是视觉上的“页面最底下那块区域”,而是逻辑上表示某个内容区块的结尾部分**。它本身不带默认样式,也不强制出现在视口底部——这点很多人一上来就误解。
为什么不能用 div 加 class="footer" 替代?
机器(比如搜索引擎爬虫、屏幕阅读器)无法从 div 推断出“这是页脚”。而 footer 明确告诉解析器:这段内容属于其最近的 article、section 或整个 body 的元信息结尾。实际影响包括:
- SEO:语义清晰的结构更容易被正确索引
- 无障碍:读屏软件能准确播报“页脚开始”,帮助视障用户跳转
- 维护性:后续接手的人一眼看出这块是版权/联系信息,而非随便一个容器
footer 必须放在 body 最末尾吗?
完全不必。它可以嵌套在任意节元素内部:
- 放在
body下:代表整站页脚,常见于版权信息 - 放在
article内:表示这篇文章的作者、发布时间、相关链接等 - 放在
section内:表示该章节的补充说明或参考资料
注意:footer 不会自动创建新的节(sectioning content),它只是“归属”于最近的节元素。
容易踩的坑:什么不该放进去?
语义错位是高频问题。以下内容不适合塞进 footer:
立即学习“前端免费学习笔记(深入)”;
- 主导航栏(该用
nav) - 广告横幅(非版权/联系/元信息,无语义关联)
- 用来做布局的“底部占位”(比如撑开高度,应改用 CSS 实现)
- 联系信息没用
address包裹(W3C 建议:若含联系人信息,应嵌套address元素)
footer 用 position: absolute 扔到页面中间,只要它在 DOM 结构里属于某篇 article,它就仍是那篇文章的页脚——机器会照此理解,人却可能被视觉欺骗。



















