2015-02-06 40 views
0

我正在閱讀D3,其中一張幻燈片提到Paul Irish提供的most minimal HTML page最小的HTML5 - 是否有效?

<!DOCTYPE html> 
<meta charset="utf-8"> 
<body> 
Hello, world! 

我明白究竟這是什麼HTML那樣 - 但是,如何在世界上難道這是有效的HTML5,而且,是符合標準的?或者這只是它的工作原理,但它彎曲規則

+0

[w3 validator](http://validator.w3.org/check)這樣說:Error Line 3,第6列:Element head缺少子元素標題的必需實例。 – Paolo 2015-02-06 07:07:38

+0

@Paolo使用哪種標準兼容驗證器,在哪種模式下? – Qix 2015-02-06 07:08:06

+0

默認設置,我想HTML5驗證。 – Paolo 2015-02-06 07:09:05

回答

4

HTML5 spec描述了在文本/ html中的標記遺漏下可以省略哪些標記。然而,spec states

是否在text/html的語法,可以省略 開始和結束標記一個非規範描述。此信息與 冗餘在可選標籤部分中給出的規範要求,並且爲了方便起見在元素定義中提供了 。

由於它是非規範性的,我們不能依靠它進行一致性檢查。在規範optional tags部分,它列出:如果內部 的HTML元素的第一件事不是註釋

一個HTML元素的開始標記可以省略。

如果html元素不是 後面緊跟一個註釋,則可以省略html元素的結束標記。

如果元素爲空,則頭元素的開始標記可以省略,或者如果頭元素內的第一個元素是元素,則可以省略。

如果頭元素不是 後面緊跟着空格字符或註釋,則可以省略頭元素的結束標記。

的主體元素的開始標記可如果元素是空的,或者 如果body元素中的第一件事情是不是一個空格字符或 評論,除非在body元素中的第一件事情是 可以省略元,鏈接,腳本,樣式或模板元素。

如果主體元素不是 後面緊跟着註釋,則可以省略主體元素的結束標記。

所以它似乎文件是有效的,除了缺少<title>,這可能是爲什麼w3 validator抱怨。還有跡象表明<title>是必需的。首先,內容模型部分,用於<head>,這是規範的,規定:

如果文檔是iframe srcdoc文檔或如果標題信息 可以從更高級別的協議:零個或多個元件元數據內容,其中不超過一個是標題元素,而不是多於一個是基本元素。

否則:元數據內容的一個或多個元素,其中一個是標題元素,不超過一個是基本元素。

而且spec states

的哪些內容規範性描述必須作爲孩子 和元素的後裔。