我正在审查很多 HTML 代码以及合成 HTML 的 JavaScript,我注意到如果标签内有一些没有内容的标签,那么有两种方法可以指定它。要么像这样:
<div id="container"></div>
或像这样:
<div id="container" />
两者有什么区别吗?
我正在审查很多 HTML 代码以及合成 HTML 的 JavaScript,我注意到如果标签内有一些没有内容的标签,那么有两种方法可以指定它。要么像这样:
<div id="container"></div>
或像这样:
<div id="container" />
两者有什么区别吗?
浏览器将无效标记标准化为有效形式:
<div />
是技术上无效的标记 (HTML 5),因为div
它不是自闭合标记。
浏览器会将其规范化为<div>
.
请注意,这与XML处理自闭合标记与闭合标记的方式不同。
自闭合标签没有子标签,也没有内部文本的值(null):
<foo />
封闭标签没有子标签,也没有内部文本(空字符串):
<foo></foo>
<div id="container"/>
是编写不包含内容的标签的正确 XHTML 方式。通常这些是<img/>
、<br/>
等。 <div>
旨在在其中包含内容,这样说<div id="container"/>
虽然可以接受,但似乎可读性较差。
第一个示例是严格的 HTML,而第二个示例是严格的 xHTML。
在 HTML5 之前,当您必须指定使用的是 HTML 还是 xHTML 时,使用错误的语法会导致验证错误,有时还会出现渲染问题。使用 HTML5 doctype 会有所不同。
其次,第二个示例是自闭合标签之一,在本例中为空div
,但 xHTML 规范中的许多标签都支持该标签,包括img
、link
、meta
以及其他任何可能为空的标签。