越来越多的站点开始使用 HTML5 标签。
但情况是还有很多人在使用IE6,IE7,IE8。
为了让所有网站浏览者都能正常的访问网站,解决方案
有下面两个:
1、为网站创建多套模板,通过程序对User-Agent的判断给不同的浏览器用户显示不同的页面,比如优酷网就是采用的这种模式。
2、使用Javascript来使不支持HTML5的浏览器支持HTML标签。很多网站采用的这种方式。
针对IE浏览器比较好的解决方案是html5shiv。
html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。
让CSS 样式应用在未知元素上只需执行 document.createElement(elementName) 即可实现。
html5shiv就是根据这个原理创建的。
html5shiv的使用非常的简单,考虑到IE9是支持html5的,所以只需要在页面head中添加如下代码即可:
<!--[if lt IE 9]>
<script src="dist/html5shiv.js"></script>
<![endif]-->
将上代码复制到head部分,记住一定要是head部分(因为IE必须在元素解析前知道这个元素,所以这个js文件不能在其他位置调用,否则失效)
其中<!–[if lt IE 9]>指定了只有版本低于9的IE浏览器才会引用这段脚本,不会对IE9及其他品牌的浏览器产生影响。
当然,你也可以把代码拿出来自己看着办:
(function(){if(!/*@cc_on!@*/0)return;var e ="abbr,article,aside,audio,canvas,datalist,details,dialog,eventsource,figure,footer,header,hgroup,mark,menu,meter,nav,output,progress,section,time,video".split(','),i=e.length;while(i--){document.createElement(e[i])}})()
最后在css里面加上这段:
/*html5*/ article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}
主要是让这些html5标签成块状,像div那样。
好了,简单吧,一句话概括就是:引用html5.js 使html5标签成块状。