2012-02-24 27 views
1

在我的下一個個人項目中,我想使用HTML5文檔類型。我知道幾乎所有的瀏覽器都支持HTML5,甚至IE6,因爲HTML5向下兼容。HTML5 Doctype + JS庫 - 必要?

但是:我是否必須使用任何JS庫才能真正實現它,例如HTML5shim,Modernizr或HTML5 Boilerplate(儘管我知道HTML5 Boilerplate不是庫)?

我的意思是,如果我不必使用它們,這些項目是什麼 - 我讀過使用HTML5shim會是所謂的「最佳實踐」,這是真的嗎? 如果我不使用他們中的任何一個,會發生什麼?一些瀏覽器會忽略像sectionaside這樣的標記元素嗎?

我也讀過使用這些庫本質上是不好的,因爲如果用戶已經停用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; 
} 

這就是我現在要做的。這很酷,但是:這麼多重複的代碼?這真的是必要的嗎?或者我做錯了什麼?

+0

IE6與HTML5不兼容,實際上,IE <9不兼容,因爲IE的CSS實現不適用於任何不能識別的元素,如節,頁眉,頁腳等。 – Rob 2012-02-25 03:12:27

回答

1

我已經沒有問題使用html5boilerplate,雖然我通常會減少它,並刪除我的項目不需要的東西,它是一個偉大的樣板開始。

+0

感謝您的評論!自從發佈這裏我已經測試了與Modernizr的合作。儘管起初我感覺有點不舒服,但迄今爲止效果很好。我編輯了我的第一個問題,請看看它。 – Sven 2012-02-25 01:23:57

+0

爲瀏覽器兼容性,您將需要使用html5shim沒有它IE <9將不正確樣式元素。據我所知,這是獲得html5工作跨瀏覽器的唯一真正需求 – 2012-02-25 01:31:02

+0

那麼,Modernizr文檔說明如下:'從Modernizr 1.5開始,這個腳本與流行的html5shim/html5shiv庫中使用的相同。參見http://www.modernizr。com/docs/ – Sven 2012-02-25 01:35:15