2011-11-26 69 views
14

如果我只需要較舊的瀏覽器識別HTML5標籤,應該使用哪些標籤,Modernizr或流行的HTML5 shiv? 另外,如果我不需要設計HTML5標籤的樣式,我是否需要瀏覽器來識別它們?或者只有在向這些標籤添加CSS時是必要的?Modernizr vs HTML shiv

謝謝!

+4

您只需要HTML5 shiv即可通過CSS爲html5標籤添加樣式。此外modernizr包括HTML5 shiv所以它是一個超集 – Raynos

+4

我會添加Modernizr是更多檢測HTML5 **功能**(如音頻格式,CSS樣式規則,本地存儲...),而不是HTML5標籤支持 –

回答

16

html5shiv基本上允許IE識別和設置HTML5元素的樣式,而Modernizr提供了同樣支持的功能。

所以要回答你的問題HTML5 shiv應該足以識別IE中的HTML5標籤。 (注意我在這裏說IE,因爲這是html5shiv的目標,不知道你說的是什麼意思,當你說老瀏覽器)

對於第二部分,即使你不想風格的HTML5標籤,我會建議使用shiv,因爲瀏覽器可能不正確地顯示它們,或根本不顯示,所以最好是安全的。

+0

偉大的,我想知道即使我沒有設計風格的標籤,如果有必要的話。太糟糕了,它只適用於IE瀏覽器(當我說舊版瀏覽器我的意思是Firefox 1或2,或任何版本的Chrome/Opera不支持HTML5) – federicot

+0

找到FF1這些天不是很常見;) – omarello

+0

You根據我在[維基百科]中閱讀的內容(http://en.wikipedia.org/wiki/Modernizr#What_Modernizr_doesn.27t_do),這是錯誤的。 – Shimmy

11

HTML5 Shiv較小,除非您需要Modernizr的某些檢測功能,否則請使用shiv。

文件的大小非常重要,因爲它始終在html文檔的頭部,並阻止下載其他資源,直到完全執行。

,因爲它只需要舊的瀏覽器,我使用下面的代碼:

<!--[if lt IE 9]> 
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> 
<![endif]--> 

您可以刪除不使用的HTML標記,但隨後你將無法使用該文件在託管谷歌。

+0

這_detection_提供給我什麼?我只寫html和Js。並且它假設將樣式應用於所有元素(包括html5的元素),那麼「檢測」是什麼意思?你能舉個例子嗎? –

1

如果瀏覽器支持特定的CSS或HTML5功能,您可以使用Modernizr加載特定的文件。

讓我們說,如果瀏覽器不支持「畫布」作爲HTML5元素和「fontface」作爲CSS3屬性

Modernizr.load({ 
test: Modernizr.fontface && Modernizr.canvas, // Test if the browser supports it or not 
yep : '/path-to/html5-css3-attributes.css', // If browser supports it, load this file 
nope: '/path-to/old-css-attributes.css' // If NOT, load this instead 
}); 

您可以使用.js文件也文件路徑條件。