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