低版本IE兼容h5


低版本IE兼容h5

keywords:兼容IE;Polyfill;条件注释;

上下文

IE10以上浏览器较好的支持了h5语义化标签;在IE9浏览器中,需要把语义化标签都转换为块级元素;IE9以下版本,不能解析这些新标签,可以将h5新标签,通过document.createElement(tagName)创建出来;也可以通过条件注释+html5shiv的方式解决

常用方案

1.IE9浏览器

在IE9浏览器中,需要把语义化标签都转换为块级元素;

header, section, footer, aside, nav, main, article, figure {
    display: block; 
}

2.IE5~IE8浏览器

可以将h5新标签,通过document.createElement(tagName)创建出来


注意:Internet Explorer 8 以及更早的版本,不允许对未知元素添加样式,所以也不怎么行呀。

3.Polyfill+条件注释让低版本ie兼容h5

1)Polyfill 是一块代码(通常是 Web 上的 JavaScript),用来为旧浏览器提供它没有原生支持的较新的功能。比如说 polyfill 可以让 IE7 使用 Silverlight 插件来模拟 HTML Canvas 元素的功能,或模拟 CSS 实现 rem 单位的支持;(MDN)

2)条件注释(Conditional comments):IE5~IE9这5个版本的IE浏览器另外支持一种特殊的if条件注释,其基本格式为;当条件满足时,就渲染注释内部代码,否则视为普通注释,常用的条件注释有:











例如:


    
        
        
        
        
        
    
    
        
    

3)Polyfill+条件注释让低版本ie兼容h5



参考文献:

[1]条件注释法

[2]What is a Polyfill?

[3]W3school-HTML5 浏览器支持