HTML5基础
HTML5
一、简介
什么是 HTML5?
- HTML5 是最新的 HTML 标准。
- HTML5 是专门为承载丰富的 web 内容而设计的,并且无需额外插件。
- HTML5 拥有新的语义、图形以及多媒体元素。
- HTML5 提供的新元素和新的 API 简化了 web 应用程序的搭建。
- HTML5 是跨平台的,被设计为在不同类型的硬件(PC、平板、手机、电视机等等)之上运行。
HTML5 - 新特性
HTML5 的一些最有趣的新特性:
- 新的语义元素,比如
<header>,<footer>,<article>, and<section>。 - 新的表单控件,比如数字、日期、时间、日历和滑块。
- 强大的图像支持(借由
<canvas>和<svg>) - 强大的多媒体支持(借由
<video>和<audio>) - 强大的新 API,比如用本地存储取代
cookie。
HTML5 - 被删元素
以下 HTML 4.01 元素已从 HTML5 中删除:
<acronym><applet><basefont><big><center><dir><font><frame><frameset><noframes><strike><tt>
二、HTML5支持
- 把 HTML5 元素定义为块级元素
- HTML5 定义了八个新的语义 HTML 元素。所有都是块级元素。
- 您可以把 CSS
display属性设置为block,以确保老式浏览器中正确的行为:
实例
header, section, footer, aside, nav, main, article, figure {
display: block;
}
- 向 HTML 添加新元素
您可以通过浏览器 trick 向 HTML 添加任何新元素:
本例向 HTML 添加了一个名为 <myHero> 的新元素,并为其定义 display 样式:
<script>document.createElement("myHero")</script>
# 已添加的 JavaScript 语句 document.createElement("myHero"),仅适用于 IE。
Internet Explorer 的问题
上述方案可用于所有新的 HTML5 元素,但是:
注意:Internet Explorer 8 以及更早的版本,不允许对未知元素添加样式。
幸运的是,Sjoerd Visscher 创造了 "HTML5 Enabling JavaScript", "the shiv":
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
三、HTML图形
SVG
- SVG 是一种使用 XML 描述 2D 图形的语言。
- SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。
- 在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。
Canvas
- Canvas 通过 JavaScript 来绘制 2D 图形。
- Canvas 是逐像素进行渲染的。
- 在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制,包括任何或许已被图形覆盖的对象。
四、地理定位
- HTML5 Geolocation(地理定位)用于定位用户的位置。
- 请使用
getCurrentPosition()方法来获得用户的位置。
五、Web存储
HTML5 提供了两种在客户端存储数据的新方法:
localStorage- 没有时间限制的数据存储sessionStorage- 针对一个 session 的数据存储
之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。
localStorage 方法
localStorage 方法存储的数据没有时间限制。第二天、第二周或下一年之后,数据依然可用。
六、应用程序
使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。
HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。
应用程序缓存为应用带来三个优势:
- 离线浏览 - 用户可在应用离线时使用它们
- 速度 - 已缓存资源加载得更快
- 减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。
如需启用应用程序缓存,请在文档的 <html> 标签中包含 manifest 属性:
<!DOCTYPE HTML>
<html manifest="demo.appcache">
...
</html>
七、HTML5 Web Workers
- web worker 是运行在后台的 JavaScript,不会影响页面的性能。
当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。 - web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。
八、HTML 5 服务器发送事件
HTML5 服务器发送事件(server-sent event)允许网页获得来自服务器的更新.
Server-Sent 事件 - 单向消息传递
- Server-Sent 事件指的是网页自动获取来自服务器的更新。
- 以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。
- 例子:Facebook/Twitter 更新、估价更新、新的博文、赛事结果等。
浙公网安备 33010602011771号