自閉合的div將無法驗證。這是因為div是一個普通元素,而不是一個空元素。
根據(jù)HTML5規(guī)范,不能包含任何內容的標簽(稱為空元素)可以自閉合*。這包括以下標簽:
area, base, br, col, embed, hr, img, input, link, meta, param, source, track, wbr
上述標簽上的“/”是完全可選的,因此<img/>
與<img>
沒有區(qū)別,但<img></img>
是無效的。
*注意:外部元素也可以自閉合,但我認為這不在本答案的范圍內。
在理論上,HTML 4中,<foo /
(是的,沒有任何>
)的意思是<foo>
(這導致<br />
的意思是<br>>
(即<br>>
)和<title/hello/
的意思是<title>hello</title>
)。我使用術語“理論上”是因為這是一個SGML規(guī)則,瀏覽器對其支持得非常差。支持非常少(我只在emacs-w3m中看到過它起作用),以至于規(guī)范建議作者避免使用這種語法。
在XHTML中,<foo />
的意思是<foo></foo>
。這是適用于所有XML文檔的XML規(guī)則。也就是說,XHTML通常以text/html
的形式提供,這(至少在歷史上)由瀏覽器使用與以application/xhtml+xml
提供的文檔不同的解析器處理。W3C提供了關于XHTML作為text/html
的兼容性指南。(基本上:只有在元素被定義為EMPTY(并且在HTML規(guī)范中禁止了結束標簽)時,才使用自閉合標簽語法)。
在HTML5中,<foo />
的含義取決于元素的類型: