sha*_*oth 4 html tags formatting
我正在审查大量 HTML 代码以及合成 HTML 的 JavaScript,我注意到如果标签内有一些没有内容的标签,那么有两种方法可以指定它。要么像这样:
<div id="container"></div>
Run Code Online (Sandbox Code Playgroud)
或者像这样:
<div id="container" />
Run Code Online (Sandbox Code Playgroud)
两者之间有什么区别吗?
浏览器将无效标记规范化为有效形式:
<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 规范中的许多标签都支持该标签,包括img、link、meta以及任何其他否则为空的标签。