武林網(www.49028c.com)文章簡介:Modernizr與HTML5.
好吧,現在流行HTML5,我就給它標題加上個HTML5吧 :)
其實modernizr就是為HTML5而生的——它是一個檢測瀏覽器對HTML5和CSS3特性支持的JS庫,著名的HTML5/CSS3瀏覽器兼容性網站FindmeByIP就是基于該框架實現的。
可以看到,右下角綠色按鈕上面有Modernizr的鏈接。
Modernizr的功能modernizr的功能其實很簡單,就是用js檢測瀏覽器對HTML5/CSS3的特性支持情況,支持某個屬性,就在頁面的<html>標簽上添加一個相應的class,不支持的話就添加一個no-前綴的class,比如,如果檢測的瀏覽器支持video標簽,modernizr就會在<html>標簽上添加video類,否則,添加no-video類。
查看FindMeByIP的源碼或者用firebug之類的工具查看頁面代碼,就可以看到<HTML>標簽中的class。
另外,modernizr也提供了另外一種用法,就是單獨的檢測瀏覽器對某個特性的支持情況,例如:
通過類似的接口檢測瀏覽器對HTML5的支持情況,是比較安全的。
瀏覽器檢測:UA VS 特性其實大家通常都會用UA去檢測一個瀏覽器,當然ua也提供了更豐富的信息,UA不是萬能的,它也有一些弱點,比如,用戶瀏覽器的UA偽裝,某些落后瀏覽器提供的UA信息太少,這些都會影響到對瀏覽器信息的判斷。更重要的是,對于HTML5特性來說,用UA去判斷一個瀏覽器是否支持某個特性,實現太復雜而且不靠譜。
當然,關于UA和特性檢測的爭論一直都有,我這里想說的是,具體問題具體分析,在網站中使用HTML5來檢測特性支持要比UA更靠譜、更方便~~
使用Modernizrmodernizr的用法很簡單,僅僅在頁面中引入庫的js文件即可:
></script>
Modernizr是開源的,但是由于某種原因,它被G-FW給封掉了。
Modernizr @ gitmodernizr項目托管在git,你可以通過以下地址獲取它:
作者還在git提供了一個簡單的輸出頁:
和一個詳細測試頁面:
detacting HTML5 features
Safely Deploy HTML5 and CSS3 with Modernizr
新聞熱點
疑難解答