解决旧版IE(如IE6、IE7、IE8)不兼容HTML5标签的问题,可以采用以下几种方法:
1. "使用条件注释":
条件注释是IE特有的语法,可以针对不同版本的IE加载不同的样式表或脚本。例如:
```html
```
在这里,`ie8.css` 是针对IE8及以下版本的样式表,`html5shiv.js` 是用于让IE6和IE9及以下版本支持HTML5标签的JavaScript库,`respond.min.js` 是用于让IE6-9支持媒体查询的JavaScript库。
2. "使用HTML5 Shiv":
HTML5 Shiv是一个JavaScript库,可以欺骗IE6-8识别HTML5元素。你可以在页面中引入HTML5 Shiv:
```html
```
这样,即使IE6-8不认识HTML5元素,也会通过Shiv库将其视为有效的HTML标签。
3. "使用Respond.js":
Respond.js是一个JavaScript库,用于让IE6-9支持
相关内容:

使用语义化代码更直观,而且更方便SEO优化。但是此HTML5新标签在IE6/IE7/IE8上并不能识别,需要进行JavaScript处理。以下就介绍几种方式。
方式一:Coding JavaScript
<!-->
<script>
(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(', ');
var i= e.length;
while (i--){
document.createElement(e)
}
})()
</script>
<!-->如果是IE9以下的IE浏览器将创建HTML5标签, 这样非IE浏览器就会忽视这段代码,也就不会有无谓的http请求了。
方法二:使用Google的html5shiv包(推荐)
<!-->
<script type="text/javascript" src="http://cdn.bootcss.com/html5shiv/r29/html5.min.js"></script>
<!-->上面这段代码仅会在IE浏览器下运行,还有一点需要注意,在页面中调用html5.js文件必须添加在页面的head元素内,因为IE浏览器必须在元素解析前知道这个元素,所以这个js文件不能在页面底部调用。
不管使用以上哪种方法,都要初始化新标签的CSS。因为HTML5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用CSS手工把它们转为块状元素方便布局
/*html5*/
article,aside,dialog,footer,header,section,footer,nav,figure,menu{display:block}如果IE6/7/8 禁用脚本的用户,那么就变成了无样式的"白板"网页,我们该怎么解决呢?
我们可以参照facebook的做法,即引导用户进入带有noscript标识的 “/?_fb_noscript=1”页面,用 html4 标签替换 html5 标签,这要比为了保持兼容性而写大量 hack 的做法更轻便一些。
<!-->
<noscript>
<style>
.html5-wrappers{display:none!important;}
</style>
<p class="ie-noscript-warning">您的浏览器禁用了脚本,请<a href="#">查看这里</a>来启用脚本!或者<a href="/?noscript=1">继续访问</a>.
</p>
</noscript>
<!-->这样可以引导用户开启脚本,或者直接跳转到HTML4标签设计的界面。

微信扫一扫打赏
支付宝扫一扫打赏