1.浏览器支持
最新版本的 Safari、Chrome、Firefox 以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 将支持某些 HTML5 特性。
2.让所有IE支持HTML5的解决方案
在页面head元素内调用 (因为IE必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。)
可以使用IE条件注释来调用这个js文件,这样像FireFox等非IE浏览器就会忽视这段代码,也就不会有无谓的http请求了。下面这段代码仅会在IE浏览器下运行:<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->3.新的Doctype声明
<!DOCTYPE html>
4.html标签上不需要声明命名空间。
<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-CN">
<!--在HTML5中,这样写:-->
<html lang="zh-CN">
5.字符集编码声明也简单了
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!--在HTML5中,这样写:-->
<meta charset="UTF-8" />
6.去掉了Javascript和CSS标签的type属性
通常你会在<link>和<script>加上type属性:
<link rel="stylesheet" type=text/css href="path/to/stylesheet.css">
<script type="text/javascript" src="path/to/script.js"></script>在HTML5中,不再需要type属性了,因为这显得有点多余,去掉之后可以让代码更为简洁。
<link href="path/to/stylesheet.css">
<script src="path/to/script.js"></script>
7.必填项属性(改进页面表单操作)
在 HTML5中,新增了一个“必须填写”的属性:required。
<input type="text" name="someInput" required>
<input type="text" name="someInput" required="required">
8.自动获取焦点
HTML5新增了自动获取焦点属性autofocus:
<input type="text" name="someInput" placeholder="douglas quaid" required="required" autofocus="autofocus">
autofocus也同样可以写成”autofocus=autofocus”,这样看起来标准些,这个根据自己的个人喜好而定。
9.IE对HTML5的支持
IE浏览器目前对HTML5的支持并不好,也是阻碍HTML5的更快普及的一大绊脚石,不过,IE9对HTML5的支持度还是很不错的。
IE把HTML5新增的标签都解析成内联元素,而实际上它们是块级元素,所以有必要为它们定义一个样式:
header, footer, article, section, nav, menu, hgroup {
display: block;}尽管如此,IE还是不能解析这些新增的HTML5标签,这个时候就需要借助Javascript来解决这个问题:
document.createElement("article");
document.createElement("footer");document.createElement("header");document.createElement("hgroup");document.createElement("nav");document.createElement("menu");可以借助这一段Javascript代码来修复IE更好的解析HTML5
<script mce_src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
10.标题群( hgroup)
这个类似于第二点技巧。如果用h1和h2标签分别表示网站的名称和副标题,但这会让两个本义上密切相关的标题并没有关联起来。这个时候可以使用<hgroup>标签将它们组合起来,这样代码会更有语义。
<header>
<hgroup><h1> Recall Fan Page </h1><h2> Only for people who want the memory of a lifetime. </h2></hgroup></header>
11.<figure>标签
看看下面一段简单的代码:
<img alt="About image" src="path/to/image">
<h6>image of Mars.</h6>遗憾的是,这里的h6标签和img标签好像没有什么关系,语义不够明确。HTML5意识到了这一点,于是就采用了<figure>标 签。当<figure>结合<figcaption>标签的使用,可以让h6标签和img标签组合起来,代码就更具语义化了。
<figure> <img alt="about image" src="path/to/image">
<figcaption><h6>This is an image of something interesting. </h6></figcaption></figure>
12.音频播放的支持
<audio> 标签定义声音,比如音乐或其他音频流。
HTML5中提供了<audio>标签,解决了以往必须依靠第三方插件才能播放音频文件的问题。目前为止,还只有少数的最新浏览器支持该标签。IE不支持该标签。
<audio controls="controls" autoplay="autoplay">
<source src="file.ogg" /> //Firefox只能支持.ogg文件 <source src="file.mp3" /> //Webkit只支持.mp3的文件 <a href="file.mp3">Download this file.</a></audio>
13.视频播放的支持
和<audio>标签一样,HTML5也提供了<video>标签对播放视频文件的支持。HTML5的规范并没有指定特定的视频解码器,而是让浏览器自己来决定。这就造成了个浏览器的兼容问题
<video controls preload>
<source src="cohagenPhoneCall.ogv" type="video/ogg"; codecs='vorbis, theora'" /> <source src="cohagenPhoneCall.mp4" type="video/mp4; 'codecs='avc1.42E01E, mp4a.40.2'" /> <div> your browser is old. <a href="cohagenPhoneCall.mp4">download this video instead.</a> </div> </video>
14.预加载视频
预加载属性:preload,首先要确定是否需要预先加载视频,假如,访客在访问一个有很多视频展示的页面,那么就有必要预先加载一段视频,这样可 以节省访客的等待时间,提高用户体验。你可以给<video>标签添加一个preload属性来实现预先加载的功能。
<video preload="preload">
...</video>
15.Mark标签
<mark>标签用于高亮显示那些需要在视觉上向用户突出其重要性的文字,包裹在此标签里的字符串必须与用户当前的行为相关。例如,如 果我在一些博客中搜索“Open your Mind” ,我可以使用在<mark>标签里使用JavaScript 来包裹每一次动作。
<h3> search results </h3>
<h6> They were interrupted, just after Quato said, <mark>"Open your Mind"</mark>. </h6>
16.该如何正确的使用div标签
有些人可能会有疑问,有了<header>和<footer>等这些标签,<div>标签在HTML5中还有 用吗?答案是肯定的,比如你想创建一个能包裹特殊内容的容器自由灵活的<div>肯定是首选,而你要创建一篇文章或者一个导航菜单,建议你使 用更有语义的<article>和<nav>标签。
17.检测浏览器对HTML5属性的支持
由于各浏览器对HTML5属性的支持度不同,这就造成了一些兼容问题。但是可以使用方法来检测该浏览器是否支持这些属性,上例中的代码如果要检测pattern属性是否被浏览器识别,可以使用Javascript代码来检测。
alert( 'pattern' in document.createElement('input') ) // boolean;
其实这是确定浏览器兼容常用的方法,jQuery库就经常使用这种方法。上面的代码中创建了一个input标签,并检测pattern属性是否被浏览器支持,如果能支持的话,浏览器就支持这个功能,否则就不支持。
<script>
if (!'pattern' in document.createElement('input') ) { // do client/server side validation } </script>
18.手机中浏览器对HTML5的兼容
Symbian: 可以用UC,可以支持HTML5
Android: 目前手机中没有浏览器支持,但可以下载“天天浏览器”,该浏览器
支持1.5、2.0、2.1系 统;或UC浏览器
iPhone: iPhone早就支持了HTML5,但HTML5的特性比较多,并不是全部支持;
WM: 可以用UC支持HTML5
黑莓OS: 支持HTML5