html5已将、等标签定义为obsolete,因其语义缺失、css覆盖困难、响应式失效且破坏无障碍与seo;应改用css布局和语义化标签如、等。

<font></font>、<center></center>、<u></u>、<s></s>、<strike></strike>、<big></big>、<basefont> 这些标签在现代项目里不该出现——不是“还能凑合”,而是语义缺失、CSS 覆盖困难、组件化下极易失控,HTML5 规范已明确定义为 obsolete。
为什么浏览器还渲染 <font></font> 和 <center></center>,但你不能用
所有主流浏览器保留对它们的解析,仅因向后兼容。但 HTML5 规范不定义其语义,也不承诺未来支持。<font></font> 把 color、size、face 写死在结构层,CSS 的 font-size 或 color 可能被继承链打断;<center></center> 依赖旧式块级居中逻辑,在 Flexbox/Grid 布局或响应式断点中会突然失效。
常见错误现象:
- 用
<center><div>内容</div></center>实现居中,结果在移动端错位 - 给
<font color="blue">文字</font>加了 CSS 类,颜色却没变——因为浏览器对<font></font>的样式有特殊优先级处理
<u></u> 和 <s></s> 不是“加下划线”和“加删除线”的快捷键
HTML5 收紧了这两个标签的语义:<u></u> 仅表示拼写错误、专有名词、技术术语等非文本标注(不是视觉装饰);<s></s> 表示不再准确或不推荐的内容,而非一般性删除效果。误用会导致无障碍阅读器误读、SEO 语义混乱。
正确做法:
- 纯视觉下划线 → 用 CSS
text-decoration: underline - 插入内容 → 用
<ins></ins> - 强调语气 → 用
<em></em>或<strong></strong> - 删除内容 → 用
<del></del>
例如:<u>重要提示</u> 应改为 <span class="highlight">重要提示</span> + CSS 控制样式,而不是语义错配。
<frame> 和 <frameset></frameset> 已彻底退出工程实践
这两个标签在 HTML5 中被完全移除,不只是废弃。它们破坏文档流、阻断历史记录、无法适配移动端,且与现代 SPA 路由机制冲突。虽然 <iframe></iframe> 仍被保留,但它语义清晰(嵌入外部文档),可控制 sandbox、loading 等行为,与 <frame> 完全不同。
迁移要点:
- 不要试图用
<iframe></iframe>模拟旧<frameset></frameset>布局 - 多页导航场景 → 用前端路由(如 React Router、Vue Router)替代
- 需要嵌入第三方内容 → 明确设置
sandbox属性,禁用不必要的权限
真正容易被忽略的是:废弃标签常藏在第三方富文本编辑器输出、CMS 模板、或老系统导出的 HTML 片段里。它们不会报错,但会在组件复用、SSR 渲染、或无障碍检测时暴露问题。检查时别只盯住手写代码,要扫整个 HTML 流水线。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











