在我的下一個個人項目中,我想使用HTML5文檔類型。我知道幾乎所有的瀏覽器都支持HTML5,甚至IE6,因爲HTML5向下兼容。HTML5 Doctype + JS庫 - 必要?
但是:我是否必須使用任何JS庫才能真正實現它,例如HTML5shim,Modernizr或HTML5 Boilerplate(儘管我知道HTML5 Boilerplate不是庫)?
我的意思是,如果我不必使用它們,這些項目是什麼 - 我讀過使用HTML5shim會是所謂的「最佳實踐」,這是真的嗎? 如果我不使用他們中的任何一個,會發生什麼?一些瀏覽器會忽略像section
和aside
這樣的標記元素嗎?
我也讀過使用這些庫本質上是不好的,因爲如果用戶已經停用JS,站點會中斷 - 但是另一方面:誰現在已經停用了JS?我可以只包含一個noscript
標籤,不是嗎?
此外,我讀過一篇文章,這些庫引起更多的問題,然後他們給我們一個好處。對我來說,這似乎是作者的個人觀點,還是他們真的會造成如此多的問題?
編輯
好了,用HTML5樣板,我不得不說,這是一個很好的解決方案,到目前爲止在一起Modernizr的測試之後。但有一件事情讓我感到不安,我不確定我是否做得對。 示例:我想在名爲#form-box
的div上使用border-radius
。對於這個例子,我假設圓角對於網站來說是必不可少的。如果他們不是必不可少的,我不會看到一個問題,如果IE用戶沒有看到他們。
所以我已經得到了類,給框基本樣式每個瀏覽器應該能夠解釋:
#form-box {
background-color: #f0eeee;
width: 400px;
height: 300px;
margin: 0 auto;
margin-top: 50px;
}
然後,對於知道border-radius
瀏覽器:
.borderradius #form-box {
-webkit-border-radius: 8px; /* Saf3-4, iOS 1-3.2, Android ≤1.6 */
-moz-border-radius: 8px; /* FF1-3.6 */
border-radius: 8px; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
/* useful if you don't want a bg color from leaking outside the border: */
-moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
而對於不知道border-radius
(即IE6)的瀏覽器,我使用添加圓角的polyfill「PIE」,即使在IE中使用JS .htc文件:
.no-borderradius #form-box {
behavior: url(PIE.htc);
-webkit-border-radius: 8px; /* Saf3-4, iOS 1-3.2, Android ≤1.6 */
-moz-border-radius: 8px; /* FF1-3.6 */
border-radius: 8px; /* Opera 10.5, IE9, Saf5, Chrome, FF4, iOS 4, Android 2.1+ */
/* useful if you don't want a bg color from leaking outside the border: */
-moz-background-clip: padding; -webkit-background-clip: padding-box; background-clip: padding-box;
}
這就是我現在要做的。這很酷,但是:這麼多重複的代碼?這真的是必要的嗎?或者我做錯了什麼?
IE6與HTML5不兼容,實際上,IE <9不兼容,因爲IE的CSS實現不適用於任何不能識別的元素,如節,頁眉,頁腳等。 – Rob 2012-02-25 03:12:27