首页 > 网站 > WEB开发 > 正文

解决IE(IE6/IE7/IE8)不兼容HTML5标签的方案

2024-04-27 15:06:09
字体:
来源:转载
供稿:网友

方式一:

<!--[if lt IE9]> <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[i])     } })() </script><![endif]-->

评价:如果是IE9以下的IE浏览器将创建HTML5标签, 但是非IE浏览器就会忽视这段代码,也就不会有无谓的http请求了。方式二:使用Google的html5shiv包(推荐)html5shiv主要解决HTML5提出的新的元素不被IE6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用CSS样式。让CSS 样式应用在未知元素上只需执行 document.createElement(elementName) 即可实现。html5shiv就是根据这个原理创建的。
<!--[if lt IE9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->以上两种方法,都要初始化新标签的CSS.因为HTML5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用CSS手工把它们转为块状元素方便布局方式三:如果ie6/7/8 禁用脚本的用户,那么就变成了无样式的"白板"网页,我们该怎么解决呢?

我们可以参照facebook的做法,即引导用户进入带有noscript标识的 “/?_fb_noscript=1”页面,用 html4 标签替换 html5 标签,这要比为了保持兼容性而写大量 hack 的做法更轻便一些。

<!--[if lte IE 8]> <noscript>     <style>.html5-wrappers{display:none!important;}</style>     <div class="ie-noscript-warning">您的浏览器禁用了脚本,请<a href="">查看这里</a>来启用脚本!或者<a href="/?noscript=1">继续访问</a>.     </div></noscript><![endif]-->这样可以引导用户开启脚本,或者直接跳转到HTML4标签设计的界面。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表