H5新标签阅读器的兼容题目-
HTML5标准究竟是刚方才定义完成的标准,还有一些阅读器并不克不及支撑其中的新标签和新属性,尤为是IE8及下列版本阅读器。下列介绍一些在页面中运用HTML5新标签的实践办法,目的是让HTML5中的新标签在初级阅读器中也得到有限的支撑,不至于影响整个的页面功能。
让阅读器辨认HTML5标准中的新标签
IE8阅读器中尚无增加对HTML5新标签的支撑,所以在IE8中没法直接展示HTML5新标签中的内容。庆幸的是IE8/IE7/IE6支撑通过document.createElement办法发生的标签,可以应用这一特性让这些阅读器支撑HTML5新标签,代码如下:
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]) }
阅读器支撑新标签后,还需要增加标签默许的样式:
article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block} mark{background:#FF0;color:#000}
这样两段简略的JavaScript代码和CSS代码就可以让IE8及下列版本阅读器支撑HTML5中的新标签。固然最佳的方式是直接运用成熟的框架,当前有多个基于这一思想的框架,运用最多的是html5shim框架,html5shim的运用办法很简略,在页面的head局部增加框架的援用即可:
HTML5中新特性的向后兼容
广义的HTML5,是包含了HTML5、CSS3以及新的API。由于新特性或多或少会存在阅读器的兼容题目,所以在运用新特性时检测阅读器可否支撑此特性是非常须要的。当阅读器不支撑新特性时,可以做合适的向后兼容处置。当前,并没有一个同一的办法检测新特性的支撑,有些新特性有对应的API可以辨认,有些新特性则只能通过一些技巧来辨认。好在国外有热心的工程师们开发了多个检测新特性的框架,其中检测正确率和运用率较高的是Modernizr。
Modernizr框架的道理是主动检测阅读器可否支撑新特性,并在标签上增加对应的类。要是阅读器支撑某个特性,则会增加一个以特性名称命名的类,反之,则增加一个以“no-”为前缀加上特性名称命名的类。同时也会生成一个名为modernizr的对象,通过推断此对象上的代表各特性的属性值,可以晓得目前阅读器可否支撑此新特性。Modernizr框架同时也包括了html5shim框架的功能,即可以让IE8及下列阅读器支撑新标签。
Modernizr的运用办法很简略,第一在head局部引入框架的JavaScript文件:
打赏