HTML5 有哪些新特性,移除了哪些元素?
新特性:
移除的元素:
支持 HTML5 新标签:
补充
补充:HTML5 是 HTML 的一次重大升级,主要变化集中在语义、图形、多媒体、表单与能力扩展几个维度。
新增的语义标签
- 结构类:
<header>/<nav>/<main>/<article>/<section>/<aside>/<footer> - 媒体类:
<audio>、<video>、<source>、<track>、<canvas> - 表单类:新增
email、url、number、date、range、search、tel等 input 类型,以及<datalist>、<output>、placeholder、required、pattern等属性
新增的 API 与能力
- 本地存储:
localStorage、sessionStorage - 离线:
Application Cache(manifest,已被 Service Worker 取代) - 通信:
WebSocket、Server-Sent Events、postMessage - 多线程:
Web Worker - 图形:
Canvas 2D、WebGL、内联 SVG - 地理:
Geolocation - 拖放:HTML5 拖放 API
- 历史:
history.pushState/replaceState
移除的元素
- 纯展示性标签:
<font>、<center>、<big>、<strike>、<tt>、<frame>、<frameset>、<noframes>、<acronym>、<applet>、<basefont>、<dir>等 - 部分属性:如
align、bgcolor、border(在 table 上)等表现层属性
让旧 IE 支持 HTML5 新标签
旧 IE(IE6/7/8)不认识新标签,会把它们当作行内元素且无法应用 CSS。常用两种解决方式:
- 引入一段 JS 创建这些元素(HTML5 Shiv):
<!--[if lt IE 9]>
<script src="https://cdn.jsdelivr.net/npm/html5shiv/dist/html5shiv.min.js"></script>
<![endif]-->
- 用 JS 手动
document.createElement后再写 CSS,例如:
document.createElement('header');
document.createElement('nav');
document.createElement('footer');
实际项目里现在已经不需要再考虑 IE8,这种兼容写法基本只剩历史价值。
来源整理自:我的有道云笔记



