HTML5(基础09-06)

1.浏览器支持

最新版本的 Safari、Chrome、Firefox 以及 Opera 支持某些 HTML5 特性。Internet Explorer 9 将支持某些 HTML5 特性。

2.让所有IE支持HTML5的解决方案

在页面head元素内调用html5.js (因为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.去掉了JavascriptCSS标签的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.IEHTML5的支持

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

 

 

 

 

 

 

 

posted @ 2012-09-06 10:37  hlp鹏  阅读(125)  评论(0编辑  收藏  举报