HTML5

 

已經有許多文章是關於HTML5的了,例如“HTML5有什麼期待?”和“HTML5會如何改變網絡”之類的,但是對於Web開發人員來說,最主要需要知道的是:我現在可以用上HTML5來做些什麼,我怎麼開始使用它?好消息是現在已經有不少的HTML5裏的東西可以使用了。但是,開始你就必須要明白一件事情,你需要知道你的受衆如何,否則的話你就不該使用HTML5。假如你的站點的訪問大部分人都是在使用IE6,那麼你完全沒有任何理由使用HTML5。另一方面,如果你站點的訪問者都是使用手機瀏覽器,如iPhone和iPad,那麼你還在等什麼呢?馬上就可以開始動手了!等等,這裏有一些準則,看完再動手不遲。

 

你現在可以使用哪些HTML5特性?

雖然HTML5標準現在仍然是個草案,在標準化組織手裏依然還在商討,但是重要的部分已經被許多現代的瀏覽器實現了。Apple Safari, Google Chrome, Mozilla Firefox, Opera和Microsoft IE9都已經很好的支持了HTML5的部分特性。

先來看看各瀏覽器在HTML5TEST網站上的得分如何:

* Apple Safari 5.0: 208

* Google Chrome 5.03: 197

* Microsoft IE7: 12

* Microsoft IE8: 27

* Mozilla Firefox 3.66: 139

* Opera 10.6: 159

看起來很明顯,非IE核心的主流瀏覽器大部分都對HTML5支持良好,它們可以使“使用了HTML5草案的網站”工作得很好。

回到開始,你現在就可以使用HTML5的doctype了,沒有理由不使用,你甚至可以在整個網站裏進行查詢和替換:

 

 

下面這部分代碼看起來更簡潔和直接,不是嗎?如果瀏覽器用一個標準兼容的方式來渲染你的網頁,那麼他們現在仍然會這麼做。

說說視頻吧。許多關於HTML5的出版物都會提及到目前的競爭者,一共四個:Flash, H.264, OGG和WebM。所有這些在未來都有可能成爲一個標準格式,而且沒有一個可以在所有平臺所有瀏覽器上正確播放,很悲哀吧,看起來,瀏覽器的贊助商們在短 時間內還沒有爲這個特性準備一個公共的格式。

所以,顯而易見的是,Video標籤現在還沒有到可以應用的階段。但是等下,人們應該期待HTML5的視頻標籤是與格式無關的。事實上,因爲視頻可 以包含多個Source標籤,它也必須得這樣工作。如果你的瀏覽器不支持第一個選項,那麼就會去嘗試第二個,再第三個,四個,五個……

處理這樣的情況的HTML是一個開源項目,支持基於網絡的視頻,不使用任何腳本和瀏覽器嗅探,可以在這裏找到

從語義上講,HTML5的一個大的改變就是那些語義明確化的標籤。可以看到的改變是,目前你的站點上充滿了類似於這樣的代碼:

 

是不是語義更明確?當然,我們還是要用CSS[層疊樣式表]來格式化這些元素。但是等等,沒有一個IE版本可以支持這些標籤!這對於人們來說是一個 巨大的問題!我們真的這麼倒黴嗎?謝天謝地,我們還有一個解決方案:所有你需要做的事情就是把下面的代碼粘貼到你的頁面的HEAD標籤裏:

 

 

HTML5 Shiv是一個開源的項目,基於一個簡單的發現:如果你在IE裏創建了一個DOM元素,那麼你就可以用那個名字在樣式裏使用。例如,如果你使用

document.createElement(“foo”)

創建了一個DOM元素,那麼你就可以在當前頁面里加入任意數量的foo標籤,而且IE會格式化它們。HTML5 Shiv裏包含了一些IE不能識別的HTML5元素,然後一個一個的去創建它們。這樣你就可以使用這些HTML5標籤了,例如:

Article, Section, Header, Footer, Nav

智能表單,另一個使HTML5更聰明的特性。如果你對於每次寫同樣的腳本去檢查郵件地址的合法性或者類似於電話號碼、網絡地址之類的感到厭煩的話,那麼你不是一個人!有理由去讓瀏覽器去完成這些煩人的工作,不是嗎?相當正確。

下面是語法:

 

 

那些舊的瀏覽器會如何處理?比較聰明的部分:如果它們看到一個TYPE屬性有個值不認識的話, 那麼它們就會用默認值Text去渲染這個元素,這正是我們所期望的向下兼容的結果。支持HTML5的瀏覽器會自動去驗證這個字段類型,但是,你最好還是不 要把以前的腳本扔掉,至少——也要在IE9普及以後。

如果你還想知道除了驗證之外,支持這些類型的瀏覽器還做了些什麼事情,那麼你可以在iPhone上試試這些表單。你會注意到與表單關聯的鍵盤類型都 會發生變化,有的時候是數字類型的,有的時候是字母類型但附加了一個@符號,還有的甚至直接有一個按鍵.com,這就是這些元素的魔力。所有你需要做的就 是改變這個type的屬性值而已。

還可以更智能一點,這裏還有個新屬性:

placehoder

這個值可以簡單地指定一段文本,你經常在網上看到的效果,沒值的時候顯示此文本,單擊的時候值變成空,離開又恢復成該文本,以前要用到Javascript處理,現在瀏覽器會爲你做這個事情了。

<input type="email" placeholder="Your email address">

 

有哪些HTML5特性你馬上就可以使用?

 

不是所有的HTML5元素都已經準備好可以使用了,因爲種種原因(這些原因是沒有一個縮寫爲 IE 的),瀏覽器支持馬上就要來了,在不遠的未來,你馬上就有兩個元素可以使用了。

魔幻字體,每個設計師都有一個夢想,希望站點的訪問者們都安裝了他們在設計時所需要的字體,爲此,以前可謂手段 百出,用圖片,Flash等等不一而足,現在,他們擁有了這個權利,你可以強制你的訪問者安裝你指定的字體了。這就是CSS3的支持: @font-face屬性。Firefox 3.5以前的版本和Safari的移動版本(iOS 4之前)不支持這個屬性,如果你的站點有很多這樣類似的訪問,那麼你可能就得等等了。

無論如何,其實沒有真正的理由,讓所有的瀏覽器都使用同一種字體的。如果你想提供給那些支持此屬性的瀏覽器以自定義字體,然後讓不支持此屬性的瀏覽器有一個可替代的字體也是一個不錯的解決方案,這個時候,Font Squirrel’s @font-face 生成器 是個不錯的去處。

陰影和圓角,讓很多設計師高興的東西來了,文本陰影、區塊陰影,區塊圓角特性等現在都CSS3支持的標準了。再說一次,如果你不想用像素級別的完美來衡量在不同瀏覽器中的渲染的話,那麼你現在就可以開始使用這些特性了。CSS3 生成器 會幫助你做好這事。

 

 

哪些特性有一天你會用到?

這個目錄裏包含了開發人員和設計師已經想了很多年的特性。可惜的是,在它們能夠在現實世界真正使用之前,可能還得再等上幾年時間。

智能表單,前面已經提到過了,但是其實還有很多更好用的元素沒有提及,但在更廣泛的支持之前,是沒有辦法使用的。

 

 

所有這些標籤都沒有跨瀏覽器,跨平臺實現支持,不過當那天到來的時候,你一定會很嚮往使用這些標籤的。

打印式佈局,另一個CSS3的特性,全面實施尚需好幾年的時間。給設計師們提供了多列布局的特性。目前只能在Firefox和Safari的測試用例裏實現。

 

地理位置檢測,隨着基於位置的服務增長,例如Gowalla和Foursquare,對於瀏覽器來說,知道用戶 在哪裏是很有用的。所以,基於手機的移動瀏覽器率先實現這個特性也就不足爲奇了,Firefxo 3.5和Safari 5已經開始提供地理定位的支持了。(Chrome的類似服務是通過Gears實現的,不過正在逐步轉向到HTML5上面)。

離線工作和本地存儲,在你沒發現你沒有網絡連接的時候,將數據存儲在雲端是非常偉大的主意;或者你有一個應用程 序,需要處理大量的數據,這樣就不得不頻繁地在服務端和客戶端之間往來,比你想像得到的還要多;又或者你的移動數據流量有限,你想在手機上存儲更多的數據 以避免太多的流量損耗,這個時候的答案就是,使用本地儲存來使應用程序離線工作,當連線的時候再同步到雲端的功能。

支持此功能的瀏覽器有:Firefox 3.5+, Safari Mobile 3.1+, Safari 4+, Chrome 4+。

畫板、動畫和變換效果,HTML5的承諾之一使用Canvas元素和一些CSS3屬性可以實現是全說明和全動畫的網站。這來自2010年7月12號的標準。

規範 說明 IE Firefox Safari Chrome
Canvas 動態圖形 9 3 3.2 3
Canvas 文本API 動態文本 9 3.5 4 3
變換 
Transitions
簡單的屬性變換 ? 4 3.2 3
動畫 
Animation
高級的屬性變換 ? ? 4 3
3D Canvas圖形/WebGL 硬件加速的動態3D圖形 ? 4 5 5
變形 
Transforms
旋轉和元素縮放 ? 3.5 3.2 3
3D變形 
3D Transform
通過第三維進行變換 ? ? 5 ?

綠色=已實現,紅色=沒有已經計劃

 

使用最尖端的HTML5的捷徑

如果你已經迫不及待地想IE8老死掉,那麼,有很多種方法可以跳過它繼續往前——再說一次,依然取決於你的訪客。查看一下你的站點的訪問日誌,看看 訪問量最多的瀏覽器標頭是什麼。這其中有一種方法就是,例如,使用Google的Chrome Frame,給IE嵌入了一個Chrome實例,如果你明白你站點的訪問者可能已經安裝了GCF[Google Chrome Frame],那麼你可以在你的HEAD里加上一行META標籤,強制IE瀏覽器使用GCF來顯示你的網站:

<meta http-equiv="X-UA-Compatible" content="chrome=1">

[編者:不過提醒你的就是,這樣做會使得原來的IE=7的IE7兼容模式失效,如果選擇請自己權衡。]

再加上一小段的Google提供的腳本,可以讓沒有安裝GCF的用戶跳轉到GCF的安裝頁面,那麼你也許可以跳過IE的限制。[編者:我瘋了,怎麼看怎麼像是免費爲GCF打廣告來帶來免費流量……]

列舉在本篇文章裏的元素只是當前HTML5和CSS3草案中的一小部分,如果你不得不使用另外的一些新特性,那麼去檢查一下現有的開源項目是很有必要的,這樣可以將瀏覽器兼容性的問題降到最低。

許多媒體在報道HTML的時候都把焦點放在立場上面,什麼“不到2022年”,什麼“Flash殺手”之類的。現實是,HTML5是長期以來的需要和對久未更新的HTML4的一次全新升級——所以,今天你就可以開始使用它了。

供稿:SafariX — Safari中文博客,分享Safari資訊、技巧和擴展

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章