2012-03-10 70 views
36

我知道網站上有很多關於這兩個腳本庫的好問題。通過html5shiv瞭解Modernizr的好處

我想問一些我在其中任何一箇中都找不到的東西。

Modernizr是什麼規定html5shiv沒有開箱即用,只是包含腳本。

我知道html5shiv「just」修復了IE瀏覽器的HTML5元素< 9,它支持停止嗎?

Modernizr修復IE導航器上的CSS3問題嗎? ie9.js能做到嗎? (我的意思是開箱即用的這個特殊問題,沒有額外的js代碼來處理角落案例)

當你考慮到除了包含腳本之外還使用庫,Modernizr優於html5shiv的優點是什麼?

+2

不是一個答案,但我的理解是,modernizr通常只是用來檢查瀏覽器是否支持新的(CSS3/HTML5)功能。然後代碼可以處理那些沒有的代碼。它確實有它所謂的「polyfills」,它們基本上是墊片或更復雜的版本。我不能完全肯定比html5shiv什麼Modernizr的提供(在墊片而言),但總體來說,Modernizr的往往是用來檢查,而不是補丁。也許我錯了,但那是我的想法。 – Marshall 2012-03-10 02:13:49

+0

http://blog.userinterfacemedia.com/modernizr-vs-html5shiv/ – 2015-03-16 14:13:51

回答

51

他們做不同的事情。

Modernizr檢測頁面中功能的可用性,允許您在需要該功能時爲舊版瀏覽器提供自己的polyfills。您可以使用canvas標記polyfill添加對<canvas>的支持,以便在不支持<canvas>標記的瀏覽器中使用canvas功能(包括JavaScript界面​​)。

Html5shiv將新的html5標籤添加到較舊的瀏覽器中,這些標籤不可用(<section>,<header>等)。它還創建的默認樣式(display: block<section>爲例)。

就是這樣。它不提供其他功能。

+0

我明白了,Modernizr做了什麼來改善IE的CSS3支持? – bevacqua 2012-03-10 02:21:10

+5

號它確實本身,不外乎告訴你,如果它的支持,如果它不支持讓你提供一個填充工具給功能添加到瀏覽器中。見https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills爲polyfills在它使用的AMN詳盡的清單。 – tkone 2012-03-10 02:31:20

+0

他們實際上是互補的:) – tkone 2012-03-10 02:32:13

37

Modernizr 1.5+實際上包含HTML5Shiv,所以如果你使用它,shiv是多餘的。來源:http://modernizr.com/docs/#html5inie

「從Modernizr 1.5開始,這個腳本與流行的html5shim/html5shiv庫中使用的相同。」

+2

從鏈接中,「從Modernizr 1.5開始,這個腳本與流行的html5shim/html5shiv庫中使用的相同。」 – JGallardo 2013-09-26 17:40:12