HTML5 移除的元素

HTML5 废弃的元素及其替代方案

问题

HTML5 移除了哪些元素?

解答

HTML5 移除了一批过时的元素,主要分为三类:

1. 纯表现元素

这些元素只用于控制样式,应该用 CSS 替代:

移除的元素作用CSS 替代方案
<basefont>默认字体body { font-family: ... }
<big>大号字体font-size: larger
<center>居中text-align: center
<font>字体样式font-family, color, font-size
<strike>删除线text-decoration: line-through
<tt>等宽字体font-family: monospace
<!-- 旧写法 -->
<center><font color="red" size="5">标题</font></center>

<!-- HTML5 写法 -->
<h1 style="text-align: center; color: red; font-size: 2em;">标题</h1>

2. 框架元素

框架技术已被淘汰,用 <iframe> 或单页应用替代:

移除的元素作用
<frame>定义框架
<frameset>框架集合
<noframes>不支持框架时的内容
<!-- 旧写法(已废弃) -->
<frameset cols="25%,75%">
  <frame src="menu.html">
  <frame src="content.html">
</frameset>

<!-- 现代替代方案 -->
<iframe src="content.html"></iframe>

3. 其他废弃元素

移除的元素作用替代方案
<acronym>首字母缩写<abbr>
<applet>Java 小程序<object>
<dir>目录列表<ul>
<isindex>搜索输入<input>
<bgsound>背景音乐<audio>
<marquee>滚动文字CSS 动画
<!-- acronym -> abbr -->
<abbr title="HyperText Markup Language">HTML</abbr>

<!-- bgsound -> audio -->
<audio src="music.mp3" autoplay loop></audio>

<!-- marquee -> CSS 动画 -->
<style>
.scroll {
  animation: scroll 10s linear infinite;
}
@keyframes scroll {
  from { transform: translateX(100%); }
  to { transform: translateX(-100%); }
}
</style>
<div class="scroll">滚动文字</div>

关键点

  • 纯表现元素(<font><center><big> 等)用 CSS 替代
  • 框架元素(<frame><frameset>)用 <iframe> 或 SPA 替代
  • <acronym><abbr> 替代
  • <applet><object> 替代
  • HTML5 强调结构与样式分离,表现层交给 CSS 处理