HTML 中的 <tag></tag> 和 <tag /> 有什么区别?

sha*_*oth 4 html tags formatting

可能的重复:
在普通标签上使用 XHTML 结束斜杠 (/)?
自闭合标签在 HTML5 中有效吗?

我正在审查大量 HTML 代码以及合成 HTML 的 JavaScript,我注意到如果标签内有一些没有内容的标签,那么有两种方法可以指定它。要么像这样:

<div id="container"></div>
Run Code Online (Sandbox Code Playgroud)

或者像这样:

<div id="container" />
Run Code Online (Sandbox Code Playgroud)

两者之间有什么区别吗?

zzz*_*Bov 5

浏览器将无效标记规范化为有效形式:

<div />是技术上无效的标记 (HTML 5),因为div它不是自闭合标签。

浏览器会将其规范化为<div>.

请注意,与封闭标签相比,这与XML处理自封闭标签的方式不同。

自闭合标签没有子标签,也没有内部文本的值(空):

<foo />
Run Code Online (Sandbox Code Playgroud)

封闭标签没有子标签,也没有内部文本(空字符串):

<foo></foo>
Run Code Online (Sandbox Code Playgroud)


Rob*_*owe -2

第一个示例是严格的 HTML,而第二个示例是严格的 xHTML。

在 HTML5 之前,当您必须指定使用的是 HTML 还是 xHTML 时,使用错误的语法会导致验证错误,有时还会导致渲染问题。使用 HTML5 文档类型使得差异变得毫无意义。

其次,第二个示例是自闭合标签之一,在本例中为空div,但 xHTML 规范中的许多标签都支持该标签,包括imglinkmeta以及任何其他否则为空的标签。