DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> HTML基礎知識 >> HTML5教程 >> HTML5文檔結構標准
HTML5文檔結構標准
編輯:HTML5教程     

說起HTML的結構,很多人都能說得頭頭是道,一般來說答案可能是這樣的:

一個DOCTYPE,一個html,裡面有head和body元素。

這當然不能說是不正確的,但是如果問到一個最小的HTML源文件必須有哪一些東西的話,恐怕很少有人能正確地做出回答。

先來回答一下這個問題,一個最簡的HTML5源碼文件需要的內容如下:

<!DOCTYPE html>

是的,就這樣,一個字符不多,一個字符不少,除了大小寫可任意變化外,其他的任何內容都是不能變動的。

那麼究竟是怎麼樣的規則,導致一個最簡的源碼文件必須有doctype聲明呢?根據標准,一個HTML文檔有如下內容組成(嚴格按照順序):

  1. 一個BOM標記,且這個BOM標記必須為U+FEFF。
  2. 0-n個空格或注釋。
  3. DOCTYPE聲明。
  4. 0-n個空格或注釋。
  5. 一個HTML元素。
  6. 0-n個空格或注釋。

這裡存在著一些和HTML4的不同,一個HTML4的最簡源碼文件是這樣的:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
                      "http://www.w3.org/TR/html4/loose.dtd">
<title>這裡是標題</title>

兩者的區別是顯而易見的:

  • HTML5把DOCTYPE修改為更簡單的<!DOCTYPE html>,這個已經眾所周知了。
  • 在HTML4中多了一個<title>標簽。

這裡的重點就是<title>標簽了,關於這個標簽,在HTML4.01標准中是這麼說的:

Every HTML document must have a TITLE element in the HEAD section.

也即是說,HTML4要求<title>標簽是必須存在的。

而在HTML5的標准中,又是這麼說的:

There must be no more than one title element per document.

HTML5中只設定了<title>標簽數量的上限,卻沒有指明下限,也就是說,沒有<title>的文檔已經被視為一個合法的文檔了。

對於DOCTYPE,HTML4中設定了6種DOCTYPE,HTML5中將DOCTYPE分為3種,這個在以後的章節中再具體說明。

再回過來看一下文檔組成,除去0-n個空格或注釋這樣並沒有多大意義的元素之外,組成的列表中還說明有一個HTML元素,但是最簡的源碼中卻沒有這東西。這是因為在HTML的規范中,一直存在“隱式標簽”這樣的概念,關於隱式標簽,大致可以這麼解釋:

一部分元素,當滿足特定的前提條件時,其開始標簽或結束標簽可以在源碼中省略。在這種情況下,被省略的標簽稱為“隱式標簽”。

需要注意的是,此處的省略指的是在源碼中省略,而在最終成型的DOM樹中,這個標簽是存在的,因此才稱為隱式標簽。因此上面最簡的源碼結構,在生成DOM樹後,其真正的結構是這樣的:

<!DOCTYPE html>
<html>
    <head></head>
    <body></body>
</html>

最後,再總結一下XHTML中的一些規范:

  • 因為是XML,所以為了表示這是一個HTML文檔,必須有一個命名空間,其值為http://www.w3.org/1999/xhtml
  • 因為是XML,所以MIME type不能是text/html了,text/xmlapplication/xmlapplication/xml+html都是比較好的選擇。
  • 因為是XML,必須有根元素,根元素為<html>,即<html>的開始和結束標簽不能省略了。
  • 因為是XML,所有元素只要有了開始標簽,就不能沒有結束標簽,或者自閉合。
  • 因為是XML,所有元素都得嚴格遵守大小寫,元素名稱必須為小寫。

因為是XML,文檔變得嚴格了很多,也因為是XML,其可讀性和規范性提高了不少。但最終,我們始終要在HTML的寬容性和XML的規范性之間找到最佳的平衡點,一味地追求極端始終是一個錯誤。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved