让IE支持HTML5的方法
程序员文章站
2023-12-13 19:07:34
越来越多的站点开始使用 HTML5 标签,但是目前的情况是还有很多人在使用IE6、IE7、IE8。为了让所有浏览者都可以正常的访问,解决方案有下面两个... 12-12-11...
越来越多的站点开始使用 html5 标签,但是目前的情况是还有很多人在使用ie6、ie7、ie8。为了让所有浏览者都可以正常的访问,解决方案有下面两个:
1.为网站创建多套模板,通过程序对user-agent的判断为不同的浏览器用户显示不同的页面,例如:优酷网。
2.使用javascript来使不支持html5的浏览器支持html标签。
针对ie比较好的解决方案是html5shiv。htnl5shiv主要解决html5提出的新的元素不被ie6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用css样式。让css 样式应用在未知元素上只需执行 document.createelement(elementname) 即可实现。html5shiv就是根据这个原理创建的。
html5shiv的使用非常的简单,考虑到ie9是支持html5的,所以只需要在页面head中添加如下代码即可:
<!-–[if lt ie 9]--><script src=" http://html5shiv.googlecode.com/svn/trunk/html5.js "></script ><!--[endif]–- >
html5shiv官方网址:
下面是一些补充:
当然包括本人blog在内。关于html5不得不提ie,在苹果、google、opera和mozilla等主流浏览器厂商积极参与新版本html标准的制定和推广时,微软却对html 5规范不屑一顾。然而微软近期才表态要在ie中支持html 5,以致到今天为止的ie8及以下是无法支持html5标签的。但在sitepoint找到了让ie支持html5办法。
以下是在的ie 8显示的例子,未作处理前:
让ie(包括ie6)支持html5元素,我们需要在html头部添加以下javascript,这是一个简单的document.createelement声明,利用条件注释针对ie在对象中创建对应的节点。
<!--[if ie]>
<script>
document.createelement("header");
document.createelement("footer");
document.createelement("nav");
document.createelement("article");
document.createelement("section");
</script>
<![endif]-->
添加以上代码后,在ie8中显示的效果如下:
sitepoint例子中创建节点的javascript代码似乎过于臃肿,在smashingmagazine提供的代码似乎更简洁。
演示如下
提示:您可以先修改部分代码再运行
<!--[if ie]>
<script>
(function(){if(!/*@cc_on!@*/0)return;var e = "header,footer,nav,article,section".split(','),i=e.length;while(i--){document.createelement(e[i])}})()
</script>
<![endif]-->
html5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用css手工把它们转为块状元素,如下例:
header, footer, nav, section, article {
display:block;
}
1.为网站创建多套模板,通过程序对user-agent的判断为不同的浏览器用户显示不同的页面,例如:优酷网。
2.使用javascript来使不支持html5的浏览器支持html标签。
针对ie比较好的解决方案是html5shiv。htnl5shiv主要解决html5提出的新的元素不被ie6-8识别,这些新元素不能作为父节点包裹子元素,并且不能应用css样式。让css 样式应用在未知元素上只需执行 document.createelement(elementname) 即可实现。html5shiv就是根据这个原理创建的。
html5shiv的使用非常的简单,考虑到ie9是支持html5的,所以只需要在页面head中添加如下代码即可:
复制代码
代码如下:<!-–[if lt ie 9]--><script src=" http://html5shiv.googlecode.com/svn/trunk/html5.js "></script ><!--[endif]–- >
html5shiv官方网址:
下面是一些补充:
当然包括本人blog在内。关于html5不得不提ie,在苹果、google、opera和mozilla等主流浏览器厂商积极参与新版本html标准的制定和推广时,微软却对html 5规范不屑一顾。然而微软近期才表态要在ie中支持html 5,以致到今天为止的ie8及以下是无法支持html5标签的。但在sitepoint找到了让ie支持html5办法。
以下是在的ie 8显示的例子,未作处理前:
让ie(包括ie6)支持html5元素,我们需要在html头部添加以下javascript,这是一个简单的document.createelement声明,利用条件注释针对ie在对象中创建对应的节点。
复制代码
代码如下:<!--[if ie]>
<script>
document.createelement("header");
document.createelement("footer");
document.createelement("nav");
document.createelement("article");
document.createelement("section");
</script>
<![endif]-->
添加以上代码后,在ie8中显示的效果如下:
sitepoint例子中创建节点的javascript代码似乎过于臃肿,在smashingmagazine提供的代码似乎更简洁。
演示如下
提示:您可以先修改部分代码再运行
复制代码
代码如下:<!--[if ie]>
<script>
(function(){if(!/*@cc_on!@*/0)return;var e = "header,footer,nav,article,section".split(','),i=e.length;while(i--){document.createelement(e[i])}})()
</script>
<![endif]-->
html5在默认情况下表现为内联元素,对这些元素进行布局我们需要利用css手工把它们转为块状元素,如下例:
复制代码
代码如下:header, footer, nav, section, article {
display:block;
}