HTML5新增元素兼容旧浏览器的解决办法
2014-04-01 23:24
246 查看
一个问题,老师抛给我们的,就是:如何让IE8-兼容这些标签?(需要设计JS中的DOM)
虽然今天刚讲的内容,但是,还是需要去了解下。
在支持HTML5标签的浏览器显示为:
|------------------------------火狐浏览器--------------------------------------------|
|顶部区域
|
|导航区域
|
|文章区域
|
| |
|-----------------------------------------------------------------------------------------|
而在旧版的浏览器显示样式为:
------------------------------IE6浏览器--------------------------------------------
------------------------------IE8浏览器--------------------------------------------
都是同样的效果,没估计错的话旧版浏览器都是不识别这些新增的标签所以都是用行内元素来处理解决的,所以,有一个解决办法的突破口就是让它变成块状元素就不会处于同一行了,这样在新旧浏览器都是可以显示同样的效果,再者就是让浏览器识别标签,需要新增标签 具体解决办法是:
IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,代码如下:
document.createElement(‘新标签’); / /新增创建新标签
JS代码如下:
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('article');
document.createElement('footer');
</script>
或者是直接循环方式创建标签:
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])
}
CSS样式设置默认样式:
<style>
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary{
display: block;
}
</style>
再者还有一种办法就是用框架的方法,用到条件注释加JS代码实现
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
直接加入这一句代码就可实现兼容问题,关于条件注意中的
<!--if lt IE9>
是判断是否小于IE9以下浏览器,如果是就执行这段JS代码 ,如果不是,就忽略掉。至于JS中的链接直接打开进去看看就知道了,也是一大段的代码。
虽然今天刚讲的内容,但是,还是需要去了解下。
<!doctype html> <html> <head> <meta charset="UTF-8"> <title>HTML5新增元素在旧浏览器的兼容-HTML5自由者</title> </head> <body> <header>顶部区域</header> <nav>导航区域</nav> <article>文章区域</article> <footer>底部区域</footer> </body> </html>
在支持HTML5标签的浏览器显示为:
|------------------------------火狐浏览器--------------------------------------------|
|顶部区域
|
|导航区域
|
|文章区域
|
| |
|-----------------------------------------------------------------------------------------|
而在旧版的浏览器显示样式为:
------------------------------IE6浏览器--------------------------------------------
------------------------------IE8浏览器--------------------------------------------
都是同样的效果,没估计错的话旧版浏览器都是不识别这些新增的标签所以都是用行内元素来处理解决的,所以,有一个解决办法的突破口就是让它变成块状元素就不会处于同一行了,这样在新旧浏览器都是可以显示同样的效果,再者就是让浏览器识别标签,需要新增标签 具体解决办法是:
IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签,代码如下:
document.createElement(‘新标签’); / /新增创建新标签
JS代码如下:
<script>
document.createElement('header');
document.createElement('nav');
document.createElement('article');
document.createElement('footer');
</script>
或者是直接循环方式创建标签:
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])
}
CSS样式设置默认样式:
<style>
article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary{
display: block;
}
</style>
再者还有一种办法就是用框架的方法,用到条件注释加JS代码实现
<!--[if lt IE 9]>
<script> src="http://html5shim.googlecode.com/svn/trunk/html5.js"</script>
<![endif]-->
直接加入这一句代码就可实现兼容问题,关于条件注意中的
<!--if lt IE9>
是判断是否小于IE9以下浏览器,如果是就执行这段JS代码 ,如果不是,就忽略掉。至于JS中的链接直接打开进去看看就知道了,也是一大段的代码。
相关文章推荐
- html5--4-3 source元素-解决浏览器的兼容
- 关于HTML5 Placeholder新标签低版本浏览器下不兼容的问题分析及解决办法
- 【浏览器兼容】在IE6下行高属性(line-height)失效的解决办法!
- html5新标签【placeholder】解决浏览器低版本不兼容问题
- div+css 浏览器兼容问题的解决办法
- HTML5 新语义元素的浏览器兼容问题
- DIV+CSS构建网站时常会出现浏览器不兼容的问题,下面整理了一些常见不兼容问题,及解决办法!
- extjs treepanel checkbox得到所选的参数,浏览器不兼容的解决办法
- 如何解决IE6/IE7/IE8浏览器不兼容HTML5新标签的问题
- 解决html5新标签 placeholder 低版本浏览器下不兼容问题
- 4.浏览器间不兼容原因及解决办法
- js浏览器兼容问题总结及解决办法
- 如何解决IE6/IE7/IE8浏览器不兼容HTML5新标签的问题
- IE6,IE7,FF等浏览器不兼容原因及解决办法
- div css 浏览器兼容问题的一点解决办法
- 常见浏览器兼容问题及解决办法
- ZeroClipboard实现复制功能(兼容各浏览器终极解决办法)
- CSS中各个浏览器兼容的解决办法