2011-09-09 98 views
95

在HTML5中,我們還需要像XHTML一樣的結束斜線嗎?我們是否仍然需要HTML5中的結尾斜槓?

<img src="some_image.png" /> 

validator.w3.org沒有抱怨,如果我放棄它,甚至沒有警告。但是一些在線文檔似乎表明對於諸如img,鏈接,meta,br等標籤仍然需要結束斜線。

+4

*仍然*?任何版本的HTML都需要關閉所有標籤嗎? – Gabe

+7

@Gabe XHTML 1.0嚴格需要它。我的意思是,網頁通常會正常加載,但它被認爲是無效的。 – CaptSaltyJack

+2

是的,但X不僅僅是因爲X很酷,HTML和XHTML之間還有相當大的差距。 – delnan

回答

71

img標籤是無效元素,所以他們不需要結束標籤。

空隙元件 區域,基,BR,山口,命令,嵌入,小時,IMG,輸入,密鑰生成,鏈接,間位,PARAM,源,跟蹤,WBR

...

Void元素只有一個開始標籤;不能爲void元素指定結束標記。

W3C |​​

這就是說,它不是嚴格的HTML5解析,所以它不會造成任何重大傷害。

+0

只是好奇,因爲我的編輯(科莫多)如果我輸入''並按回車鍵。它預計在HTML5模式下的斜線,我想確保這是正確的行爲。 – CaptSaltyJack

+5

這是HTML,而不是XHTML,所以不是必需的。幸運的是,解析器仍然能夠理解XHTML風格的結尾符號,所以將其留在那裏並沒有什麼壞處。如果需要,無論出於何種原因,均可方便地轉換回XHTML。 – Nightfirecat

+0

這真的很奇怪。爲什麼'schema.org'在imgs上有結束標籤?看看這裏:'http:// schema.org/Person' –

1

沒有。 HTML從來不需要它,甚至在HTML5之前。如果您打算使用HTML特性的XHTML,那麼是的,這是必要的。

+1

XHTML與HTML5不一樣,對嗎?如果我的DOCTYPE只是「html」,我不需要後面的斜線,對嗎? – CaptSaltyJack

+0

@CaptSaltyJack:正確。 – Ryan

+0

@CaptSaltyJack - HTML5涵蓋了普通的HTML和XHTML。 XHTML要求關閉所有元素,但對於瀏覽器,文檔類型不會影響情況。有關更全面的解釋,請參閱http://stackoverflow.com/questions/2662508/html-4-html-5-xhtml-mime-types-the-definitive-resource/2664082#2664082 – Alohci

-13

必須關閉所有標籤(通過自行關閉或單獨關閉操作)。其中一些(如<p>標籤)需要單獨的結束標籤。記住,所有標籤必須關閉或瀏覽器(如果嚴格遵守)將會出現錯誤。這意味着,即使在開始和結束之間沒有內容的標籤,也必須以某種方式關閉。下面我會看看<img>標籤,因爲它沒有任何內容在打開和關閉之間。

在HTML4中它是自閉的。這並不意味着它不會關閉,因爲所有標籤都必須關閉。它只是通過它的存在而自我封閉。因此,在HTML4的<img>標籤很簡單: <img>

在XHTML中它是不是自閉。這意味着你必須提供一個單獨的結束標記是這樣的: <img></img>

然後在HTML5有人終於得到了智能,並決定將關閉不具備開合,一個非常簡單的任務之間內容的標記。只使用一個標記,但在大於號之前有一個斜槓,如下所示: <img />

這也完全向後兼容HTML4。如果您不使用XHTML(需要單獨的結束標記)並且不確定您的代碼是否使用HTML4或HTML5標準。你最好的選擇是總是在大於符號之前有一個結束斜線,以便在打開和關閉之間沒有內容的標記。這樣它會永遠在每個瀏覽器中正確顯示。

下面是一個正確編寫的HTML代碼示例,它與所有瀏覽器具有高度的兼容性。

<!DOCTYPE html> 
<html> 
<head> 
<title>test website</title> 
</head> 
<body> 
<p>This is a test.</p> 
<img src="testpic.jpg" /> 
</body> 
</html> 
+5

您能否引用:我很確定這一信息不正確,永遠不會有效,無論文檔類型如何。 – CherryFlavourPez

+2

@CherryFlavourPez這個信息是非常錯誤的,應該被忽略。然而,爲了澄清在XHMTL中重新編號爲''的情況。是的,這是有效的XHMTL,但要讓瀏覽器正確解析它,它必須以XML MIME類型發送:application/xhtml + xml。 http://www.w3.org/International/articles/serving-xhtml/即使你設置了正確的DOCTYPE,如果你的web服務器發送HTML頁面爲MIME:text/html,客戶端瀏覽器將使用HTML解析器,並且可能得到困惑。因此,建議在XHTML中使用''。請注意,這與答案所說的相矛盾。 – ToolmakerSteve

63

在HTML 5中,結束斜槓是無效元素可選這樣img(我加入這個,因爲目前公認的答案只是說:「結束標籤不得爲空元素指定」,並執行沒有解決void元素中的關閉斜槓)。

http://www.w3.org/TR/html5/syntax.html#start-tags援引(數6):

然後,如果該元素是空元素之一,或如果元件是一個外來元素,則有可能是一個單一的「/」(U + 002F)字符。這個字符對空元素沒有影響,但是在外部元素上,它將開始標記標記爲自閉。

0

FROM W3C:

空隙元素:面積,鹼,BR,山口,嵌入,小時,IMG,輸入,密鑰生成,鏈接,間位,PARAM,源,跟蹤,WBR

「空元素只有一個開始標記;不能爲空元素指定結束標記。「

http://www.w3.org/TR/html5/syntax.html#void-elements