使用单个标签作为div的有效HTML5吗?

23
例如:应该使用<div/>而非<div></div>
我这样做后,HTML5验证工具认为它是有效的。我想知道这是否真的正确?
PS:我将页面作为application/xhtml+xml提供。
3个回答

25

这不是有效的HTML 5(HTML不允许使用短标签,等效的HTML结构是单个开放的

标签)。它是有效的XHTML 5,因为它是有效的XML。

你可能会看到这个通过验证器时没有问题,因为你所说的原因是:

PS:我将页面作为application/xhtml+xml服务

这意味着你告诉验证器必须将你的标记视为XML。换句话说,你的页面根本不是HTML 5。


5
默认情况下,没有任何元素支持自闭合语法。那些没有内容模型或空内容模型的元素可以为了符合XHTML标准而进行自闭操作,但是浏览器无论哪种方式处理它们都一样。例如,<img /><img>是相同的。 - Rex M
在这种情况下,请尝试区分HTML5规范和包含在其中的HTML(text / html)和XHTML(application / xhtml + xml)序列化。虽然这个答案基本上是正确的,直到最后一句话,即XHTML页面确实是HTML5。 - Alohci

17
那种语法允许用于HTML5特定子集,称为void元素和其他一些情况:

然后,如果该元素是空元素之一,或者该元素是外部元素,则可能会有单个U+002F实心斜杠字符(/)。这个字符对于空元素没有影响,但对于外部元素,它标记开始标记为自闭合。

空元素:

area、base、br、col、command、embed、hr、img、input、keygen、link、meta、param、source、track、wbr

它们不允许用于其他任何元素,包括<div>
(我最初回答是有效的HTML5,因为在XML中这是一个常见的构造。Rex M和spec的仔细阅读告诉我我错了)

0
不,从技术上讲,使用自闭合的<div/>标签是无效的HTML5。使用<div></div>就可以正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接