2013-10-21 54 views

回答

117

一個標籤總是用標籤關閉符號>(如果我們忽略通常適用於某些SGML的規則被關閉在非XHTML HTML中,但從未在瀏覽器中實現)。

你的意思是要問元素是否需要用結束標籤關閉。答案是,非XHTML HTML(包括HTML序列化中的HTML5),不需要或允許使用metalink元素。然而,在實踐中,瀏覽器會忽略它們的顯式結束標記,以及如果使用它們,則在>之前的貨運信息/。而且,HTML5甚至正式允許在HTML序列化中使用/也是一項規則。

在XHTML,XML規則適用,所以每一個元素,無一例外,必須同時具有開始標記和結束標記,但相同的標籤可用於兩個角色,如果元素內容爲空,例如<meta name="foo" content="bar"/>簡稱爲<meta name="foo" content="bar"></meta>。如果您在向具有XML(XHTML)內容類型的文檔提供符合要求的瀏覽器時違反此規定,則根本不會顯示您的文檔;將顯示一條錯誤消息。

當使用HTML內容類型(Content-Type: text/html)的XHTML服務器時,由於XHTML文檔幾乎總是在Web上,因此瀏覽器實際上會應用非XHTML HTML規則。

總結:

  • 正常,只是<meta ...>使用沒有/
  • 如果你真的在XHTML解析實際應用上下文使用XHTML,通過XML規則玩(並確保你知道他們)
  • 如果你的老闆告訴你寫<meta ... />,這樣做的;它沒有用處,但它不會造成任何傷害(除非您嘗試驗證例如agaist HTML 4.01 doctype)。
+1

使用/>導致一個問題,其中谷歌機器人不識別元機器人標籤。奇怪!!! – DevZer0

+0

https://en.wikipedia.org/wiki/Cargo_cult_programming ;-) – antoine129

+5

在這種情況下,我發現「貨運 - 邪教」一詞不合適。有些人關閉這些元素,僅​​僅是因爲他們壓制XHTML沒有佔上風。 – mbee

18

這取決於文檔類型。 HTML5不需要關閉。 XHTML的確如此。

在HTML5中,所謂的空元素(即不能有內容元素)不需要關閉,因爲它們是自閉。但它仍然是有效的,如果你關閉它們..

瞭解更多關於在這裏:​​void-elements

+4

HTML5有兩個序列化,並且其中之一(XHTML序列化),使結束標記強制性的。 –