html5shiv脚本的功能及使用

来源:互联网 发布:ubuntu vim配置文件 编辑:程序博客网 时间:2024/06/01 07:33

存在问题:越来越多的站点开始使用 HTML5 标签。但情况是还有很多人在使用IE6,IE7,IE8。为了让所有网站浏览者都能正常的访问网站。


解决方案:
1、为网站创建多套模板,通过程序对User-Agent的判断给不同的浏览器用户显示不同的页面,比如优酷网就是采用的这种模式。
2、使用Javascript来使不支持HTML5的浏览器支持HTML标签,针对IE浏览器比较好的解决方案是html5shiv。html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。让CSS 样式应用在未知元素上只需执行 document.createElement(elementName) 即可实现。html5shiv就是根据这个原理创建的


方案二使用方法:
1、下载html5shiv
2、html5shiv并不能让传统低版本浏览器正常实现html5元素所有功能,而是对不支持html5元素,如video和audio等,当成相应的成块状或行内元素进行显示,并可以为html5元素添加样式。
3、
<!--[if IE]>
<script src=”http://html5shiv.googlecode.com/svn/trunk/html5.js”></script>
< ![endif]-->
将上代码复制到head部分,记住一定要是head部分(因为IE必须在元素解析前知道这个元素,所以这个js文件不能在其他位置调用,否则失效)
4、在css里面加上这段:
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
主要是让这些html5标签成块状,像div那样。


不用html5shiv 解决问题情况:
有时,页面中只需用到section header footer article等少数几个html5语义化元素。能不能不通过html5shiv,自己写JavaScript实现低版本浏览器支持这些元素呢?

其实很简单,把下面的代码嵌入到head中。

<!--[if lt IE 9]>
  <script>
   ;(function(){
     var elements = ['section','header','footer','article'];
     var i;
     for(i in elements){
       document.createElement(elements[i]);
     }
   })();
  </script>
<![endif]-->

再对html5元素添加相应样式

<style>
  section, header, footer, article {display: block}
</style>

这样IE6-8就能正确识别上述几个html5元素并为之添加样式了。


深入学习html5shiv:


html5shiv可以说是解决html5兼容问题的一个小框架。阅读并html5shiv源代码有助于理解html5shiv的工作原理,并学会自己开发一套符合工作需要的html5框架来支持html5。










原创粉丝点击