什么是 Modernizr?
Modernizr是一个JavaScript库,用于检测用户浏览器的HTML5与CSS3特性。
为什么使用 Modernizr?
使用炫酷新颖的web技术是一件有趣的事情,但你不得不面对落后的浏览器。 Modernizr可以使你方便的为各种情况编写
JavaScript和CSS,无论浏览器是否支持这些特性,这是处理渐进增强的完美方案。
工作原理
Modernizr会在页面加载后立即检测特性;然后创建一个包含检测结果的JavaScript对象,同时在html元素加入方便你调整CSS的class名。
使用
在官方网站( http://modernizr.com )上我们可以看到有两个下载选项,Development和Production版本。其实它们都会导向同一个下载页面,只不过前者会帮我们把选项预先勾上而已。
通常我们需要检测的新特性基本都囊括在了这些选项中,我们可以根据自己需要,定制化的选择需要检测的feature
下载完后我们就可以在 <head>
中引用这个类库。由于Modernizr帮我们内置了 html5shiv 类库,所以我们必须在 <body>
加
载之前引用这个类库。当然你如果针对的是IE9+的浏览器,那么可以在页面元素加载完后再引入,但这样就会有 FOUC 这样极不友
好的效果出现。
最后,我们需要在 <html>
标签中加入 no-js
类,以免浏览器禁用了JavaScript。使用了Modernizr后,页面中渲染后的html
代码有很多以no作为前缀的class,当然大部分都没有这个前缀。事实上,如果一个类名以no作为前缀,比如 no-touch
这表示浏览
器不支持touch特性,这也是最新版本的Chrome不支持的两个feature之一。