做为html5开发人员经常面临兼容性和新功能之间的抉择,为了解决这一问题,咱们会采起不一样的方案,按照问题解决的递进关系能够分为3步(避免问题和解决问题):1,了解主流浏览器对于制定html5功能的支持状况,若是可以获得指望的浏览器的支持,那么可使用,不然不实用。在了解浏览器的支持状况后,还须要浏览器的装机状况,这样能够进一步了解目标用户对于新功能是否有足够的支持;2,针对一台具体的用户电脑浏览器查询特定的功能时候可以被支持(所谓诊断),可使用modernizr技术来解决;3mo d针对诊断结果采起解决方案,可使用腻子脚原本解决(所谓医治)。html
1,了解浏览器的支持状况和浏览器在用户中的使用状况html5
能够经过专门的统计网站caniuse来了解这些状况,
简单说明一下它的使用。上图(caniuse首页截图)是网站内容,在绿框中输入你所须要的html5新功能名字,便可查询对应的使用状况。chrome
caniuse查询结果
在查询结果中能够看到各个主流浏览器的不一样版本对于这个功能支持状况。值得注意的是国内一些浏览器大可能是盒子浏览器,采用别人的浏览器内核。如QQ浏览器采用的IE内核(支持状况取决于你电脑上安装的IE版本),360浏览器采用的是chrome+IE浏览器双核,百度浏览器一样是双核。具体版本能够经过到官网上进行查询。这些浏览器会基于内核进行优化,因此不能简单根据内核版本判断支持状况,但内核版本能够做为充要条件。浏览器
2,经过modernizr进行浏览器功能检测函数
经过modernizr能够判断某一功能是否可以被当前浏览器支持,modernizr是一个能够插入到你的网页里面的js文件,经过调用内部的函数能够完成对当前浏览器的某一功能的检验。使用方法以下:优化
1,下载modernizr的js文件。2,将文件放入到你的网页所在的文件夹内。3,在你的网页的head标签中加入对这个js文件的使用。4,编写脚本执行检测功能,并将结果输出到页面中去。网站
3,经过腻子脚原本解决兼容性的问题。spa
咱们已经能够经过modernizr来判断某一功能可否被当前浏览器所支持。可是这一结果不能帮助浏览器进行正确的现实为了解决这一问题,咱们能够经过腻子脚本的方式来解决。针对不一样html功能会有腻子脚原本解决,然而腻子脚本的的品质确不一能保证。这是腻子脚本的集合htm