HTML5新增元素兼容旧浏览器的解决办法

本文介绍如何使IE8等旧版浏览器支持HTML5新增的元素如header、nav、article等,通过JavaScript创建元素及CSS设置显示模式,确保跨浏览器的一致性表现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个问题,老师抛给我们的,就是:如何让IE8-兼容这些标签?(需要设计JS中的DOM)

虽然今天刚讲的内容,但是,还是需要去了解下。

    <!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中的链接直接打开进去看看就知道了,也是一大段的代码。












评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值