HTML5小常識

李鬆峰發表於2011-12-20

說明:這是在翻譯HTML5:The Missing Manual時摘錄的書中關於HTML5的有價值的知識點。先前發在了我的微博上,現整理到一起發表出來,供有意者學習參考。

  • #HTML5:The Missing Manual# 如果說HTML是一部電影,那HTML5就是一次大轉折。HTML本來是不會活過21世紀的。官方Web標準組織W3C在1998年對HTML就已經撒手不管了。W3C把未來都寄託在XHTML,這個更具現代特色的後續標準身上。 是一群被剝奪了話語權的人,讓HTML起死回生併為本書將要探討的功能奠定了基礎。

  • HTML5的“自由散漫”表現在:(1)不要求網頁中必須包含<html>、<head>和<body>元素;(2)標記和屬性均不區分大小寫;(3)允許省略關閉空元素(void elment)的斜槓;(4)屬性值中只要不包含受限的字元(比如>、=或空格),就可以不加引號;(5)只有屬性名沒有屬性值也可以。

  • 嚴肅的Web開發人員編寫HTML5頁面還是要遵循XHTML語法:(1)包含可選的<html>、<head>和<body>元素;(2)標籤和屬性全部小寫;(3)標籤不要錯誤巢狀;(3)屬性值要加引號。想驗證自己的HTML5頁面是否符合XHTML語法?使用這個驗證器http://t.cn/ScF199,在Prese中選XHTML5。

  • #HTML5:The Missing Manual#由於HTML5標準描述的都是事實,而不是丟擲一堆理想的規則了事,因此它有望成為有史以來受支援程度最高的Web標準。

  • HTML5有兩個版本:開發人員版(http://t.cn/Scs9Dj)要求摒棄過去的那些壞習慣和被廢棄的元素。通過使用HTML5驗證器可以確保遵循HTML5標準的這一部分。瀏覽器開發商版(http://t.cn/7vZ3v)包含從頭實現一個相容過去和未來的瀏覽器所需要的全部資訊。前者是後者的子集。

  • 今天,當你聽到別人提及HTML5,可能有三層意思:(1)HTML5核心,即W3C官方規範,涉及新語義元素、新表單控制元件、音訊和視訊、畫布;(2)曾經屬於HTML5的功能,源自WHATWG最初制定的規範,但逐步被剝離出來,包括本地資料儲存、離線應用、訊息傳遞等;(3)有時候會被稱為HTML5的功能,包括CSS3、地理定位等。

  • XHTML5(Polyglot Markup:http://t.cn/SV7jJt)是HTML5與XML的交集,是兼顧二者的方案,可由XML或HTML解析器解析,解析後都生成相同的DOM。伺服器端配置的MIME型別決定使用的解析器:application/xhtml+xml 或 text/html。注意:IE9之前的IE不支援XML解析器。另可參考:http://t.cn/SV7jJc

  • HTML5保留的HTML元素有100+,新增的元素30個左右,改變含義的元素大約10個。看這裡一目瞭然:http://t.cn/GLE0G

  • HTML5刪除了框架,但<iframe>得以保留,因為Web應用經常要利用<iframe>實現一些整合任務,比如在網頁中包含視訊視窗、廣告單元和谷歌搜尋框等。

  • HTML5中改變了一些元素的含義。如<small>元素(<big>被刪了),原來是表現性的元素,用於縮小文字,現在它的含義是“small print”,即附屬細則,用於頁面底部的法律條款。再如<hr>和<s>元素,前者插入水平線,後者加刪除線,但在HTML5中它們的含義變成了“主題轉換”和“不準確、不相關的內容”。

  • XHTML 1.0為替代<b>和<i>引入<strong>和<em>是想引入重要和強調的語義。HTML5為這4個標籤賦予了新的含義:<strong>表示要突出顯示的“重要內容”、<b>僅表示“粗體”但不是更重要(關鍵字、產品名)、<em>表示要大聲朗讀的“重讀內容”、<i>僅表示“斜體文字”但不是更重要(外文單詞、技術術語)。