Heim > Fragen und Antworten > Hauptteil
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 />
的含义取决于元素的类型: