2010-09-06 59 views
3

查看HTML源Googles Privacy Page標題是:谷歌隱私頁面的HTML無效

<!DOCTYPE html> 
<html lang="en"> 
    <meta charset="utf-8"> 
    <title>Google Privacy Center</title> 
    <link rel="stylesheet" href="//www.google.com/css/privacy.css"> 
    <h1><a href="/"><img src="//www.google.com/intl/en/images/logo_sm.gif" alt="Google"></a> Privacy Center</h1> 

我注意到沒有標籤這裏或頁腳。此外,沒有結局</html>

這是有效的標記嗎?

+2

下面的許多答案(包括我的)都參考了w3.org網站上的HTML驗證器。只是FWIW,要小心驗證HTML5,驗證器中的HTML5支持仍然是「實驗性」的。如果它說你有什麼不對,你可能(但不一定)做;但它可能會錯過無效的東西... – 2010-09-06 17:28:58

+3

這是堅果,我可以看到的唯一優勢是「帶上標籤隨時丟失字節」,除此之外,這是一個大塊的混亂。 – Ben 2010-09-06 17:51:47

+1

@Ben:同意。儘管習慣了,但HTML5中的各種東西都是可選的(比如'body'標籤,關閉的'html'標籤......)。 – 2010-09-06 18:00:11

回答

3

HTML5(這是他們宣稱這是什麼頁面),可以省略很多東西。例如,body標籤的開始和結束標籤都是可選的,標籤htmlref)也是如此。

驗證器says it's valid,但驗證器的HTML5支持也是實驗性的。因人而異

0

如果你通過W3C validator運行它,你會得到這個這個文件已經成功地被檢查爲HTML5!

0

It is valid HTML5

但是,它不是XHTML。

+2

*「但是,它不是XHTML。」*它也不是自稱的。 – 2010-09-06 17:30:57

+0

@ T.J .:正確。我的觀點是,因爲它不是XHTML,所以它不需要結束標籤。 – SLaks 2010-09-06 19:31:31

1

閱讀W3C HTML5 Spec syntax tag omission

的主體元素的開始標記可 省略如果元素是空的,或者如果 身體 元素中的第一件事情是不是一個空格字符或 評論,除非body元素中的第一個東西 是一個腳本或 樣式元素。如果主體元素 之後沒有緊接着 評論,則可以省略主體元素的末尾 標籤。

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

有趣的是,該文件的編輯器是谷歌的伊恩·希克森,公司

3

HTML allows to omit certain start and/or end tags

一些HTML元素類型允許作者省略結束標記(例如,PLI元素類型)。一些元素類型也允許省略開始標籤;例如,HEADBODY。 HTML DTD爲每個元素類型指示是否需要開始標記和結束標記。

如果檢查像HTML 4.01的一個文檔類型定義,元素的聲明與element declarations <!ELEMENT … >。在這樣的元素聲明中,兩個字符指定元素的開始或結束標記是否可以省略。參見definition of P例如:

<!ELEMENT P - O (%inline;)*   -- paragraph --> 

這裏-後的元素名稱P表示該開始標記是必需的,O表示該結束標記可以被省略。另一個例子中,HEAD element

<!ELEMENT HEAD O O (%head.content;) +(%head.misc;) -- document head --> 

這裏兩個O指定兩者的開始和結束標籤可以省略。

僅在元素上省略這兩個標籤纔是可能的,因爲這樣的元素隱含在其上下文中。在HEAD情況下,element HTML被指定爲親本的內容模型如下:

<!ELEMENT HTML O O (%html.content;) -- document root element --> 

當參數實體html.content定義如下:

<!ENTITY % html.content "HEAD, BODY"> 

這意味着內容模型HTML隱含地定義爲HEAD,然後是BODY

您可以查看index of HTML 4.01 elements以查看哪些元素可以省略哪些標籤。

+0

感謝您的詳細解釋。 – Yehonatan 2010-09-09 10:18:44