摘要:HTML5也許還不是一個完全定稿的標準,但變化不會太大了——而且接受程度也在上升。 Justin James突顯了這個新規範的關鍵概念。
一兩年前,HTML5似乎還是一個模糊的概念,只有少數幾個網路的書呆子才會關心。而現在,卻感覺彷彿HTML5無所不在了。感謝Mozilla和Chrome的快速發布,以及微軟IE9的部署(IE10現在也處於「技術預覽」狀態了),數量有限(或者說比有限要更好)的支援HTML 5的瀏覽器已將近人人皆可享受。開發人員開始利用那些廣泛實現的功能特性。不出1年HTML 5就將完全支持,而規範也正快速到達穩定狀態,現在正是了解一些HTML 5須知的好時機。
XHTML是喜歡精確,尤其是在解析方面精確的人的選擇。 HTML外觀一直都有很多與XML相似的地方,但卻永遠都無法跟XML一模一樣,因此,試圖把它當作XML來解析必將失敗。因此不久前,XHTML被制定出來取代HTML語言,並將它歸類為XML的術語裡面。當HTML 5的 工作首次啟動的時候,同時也在進行XHTML 2的工作,但它最終還是被封存了。相反地,HTML 5規範制定出來的目的在於,讓你能夠編寫遵循嚴格的XML語法的,並能工作的HTML 5文件。 如果你把它跟XML MIME類型一併發送出去的話,用戶端也會把它當作XML文件來進行解析。這把兩個世界最好的東西都給了開發人員。
對於HTML 5,流傳很廣的誤解之一是「到2022年之前都不會完成」。其典型的支持證據是若干年前我對HTML 5規範的編輯蘭‧希克森(Ian Hickson)的訪談。諷刺的是,即便是在那次訪談中,他對2022年這個日期也很明確。但是有些人對此感到激動,其憤怒的文章引起的注意要比實際的事實引發的關注多得多。
事實是2022年是希克森預期HTML5規範成為完全W3C推薦的日子,到那個時候將會有兩個100%完成的、可驗證的實現。這既相當的沒有意義,同時又稱得上是一次巨大的飛躍,為了讓大家了解為什麼說,可以想想,沒有其他版本的HTML規範曾經達到過那樣的地位,這主要是因為對於任何實現來說要做到可驗證的正確都太含糊了。而HTML 5規範正接近固化不變,就是現在,2011年。
在如何用於對文檔進行標記方面,儘管HTML 5的確做了若干的改進,大的關注點仍是應用。 HTML 5所引入的用於支援應用程式開發的特性的數量是令人驚愕的。這並不是說Flash和Sliverlight很快就會消失。但是微軟已經宣布其對Sliverlight重新定位關注點為瀏覽器以外的體驗。 Flash和Silverlight仍擁有一些HTML 5不具備的能力,但對於許多共同目標來說,現在鴻溝不再了,這要歸功於HTML 5的新能力。可能重寫已有應用程式並不值得,但你應該看看HTML 5對於新應用是否有意義。
4: 它是許多新工具的基石
隨著HTML 5成為完全成熟的應用框架,工具製造商,尤其是那些設計用於克服跨平台開發問題的,現在正把他用作其產品的基礎技術。如果你正在尋求編寫跨平台運行的應用,而其也在HTML 5的能力範圍之內,那麼你應該考慮一下這些工具。這對於行動領域尤其重要,否則的話,對於每一個你打算作為目標的手機平台來說,都需要學習全新的語言、API以及框架。
「HTML 5最佳新功能」我的個人之選是tag(標籤)。之前(也有tag),你自己得求助於Flash或Silverlight來為你的網站提供一個媒體播放器。而有了這些新的標籤之後,從理論上來說,那些日子一去不復返了。為什麼只是「理論上」呢?令人悲哀的是,由於專利的緣故,對於應該支援哪種格式,不同的瀏覽器製造商尚不太能確定。而一旦塵埃落定,Flash和Silverlight都會失去其#1使用者案例。
如果說似乎Chrome瀏覽器在HTML 5上有了一個極好的開端的話,那麼這裡也有一個好的理由。 HTML 5規範的製定過程中給予編寫和部署程式碼濃彩重墨。我這麼說並不是指他們不管任何瀏覽器供應商做了什麼都會蓋上「橡皮圖章」了事。但你是很難說服那些參與編寫規格的人接受尚未實現的特性,已實現的特性更有可能被列入為規範新專案的基礎。由於Chrome似乎每幾週就會有一個新版本出來,因此谷歌加進去的新特性也被納入到HTML5規範裡面的機會就會很大。
每當有人宣稱某個瀏覽器是或不是「標準相容」的時候,我都不得不笑起來。在HTML 5之前,標準相容簡直就不可能被加以證明。許多情況下,目前的規範都太過含糊或乾脆對重要問題默不作聲(像處理解析錯誤),結果就是不同的瀏覽器都可以做範圍很廣的不同事情,並且依然要么是標準兼容的,要嘛是被歸類為「不相容性無法證實」。即使是最著名的ACID測試也證實不了太多東西,由於它只測試了HTML的子集。而HTML 5的門檻則提高了不少,證明一個用戶代理是標準相容的終於有可能了。的確,2022這個到達「建議」狀態的日期背後的其中一個原因就是需要編寫完全測試包。
Web瀏覽器裡面的標準相容並沒有像人們通常所認為那樣的行為,HTML 5也沒有改變這一事實。 HTML的一個大的困惑是許多的Web設計者和開發人員認為HTML規範控制著螢幕專案的外觀;其實不然。舉個例子,如果牠喜歡的話,網頁瀏覽器可令tag使用更大或不同顏色的字體而非加粗字體,也還能保持相容性。許多時候,當設計者說瀏覽器與標準不相容的時候,其所遭遇到的實際上是賦予用戶代理的在如何顯示標籤方面的靈活性。 HTML5並沒有改變這個事實。如果你一定要讓標籤按照精確地方式顯示,別指望瀏覽器的預設行為,把你的需求在CSS中指定。
HTML5規範終於引入了精確解析規則,並定義了像用戶代理遭遇解析錯誤時應該做的事情。因此,你可以預期,過去一些習慣於被當做可接受乃至「合法」HTML而通過的東西不再符合要求。你將會想要去熟悉HTML5的解析規則並確保你的程式碼符合其要求。
在HTML之前的版本中,存在著一種與生俱來的假設,那就是傳統的Web瀏覽器是用戶代理的選擇。儘管其他的用戶代理和內容類型也得到了支持,隱含的想法是它們並非同等的重要。但是,針對於非瀏覽器、非桌面大小的用戶代理,HTML5在與瀏覽器更平等地相待方面做出了很多的改變。像是在螢幕閱讀器和手機上工作得有多好之類的東西取得了許多進展。因此,對於需要它的開發人員來說,寫得好的HTML5是能夠「一次編寫,隨處查看」的框架,它也能夠對那些否則就要與Web做鬥爭的用戶(尤其是那些存在各種障礙的人士)起作用。
以上是關於HTML5你不得不知道的事的詳細內容。更多資訊請關注PHP中文網其他相關文章!