10

为什么某些 html 开始/开始标签需要结束/结束标签?

例如,<script> 需要一个</script>,而<img> 可以(实际上,必须)是自闭合的<img src="path.jpg" />)?

我认为这与需要开始和结束标签之间的内容有关,但是对于 , 的示例<script><script src="file.js"></script>不需要介于两者之间的任何内容......

我问是因为我花了很多时间试图弄清楚为什么我包含的脚本在 Safari 中工作,但在 FF 或 Chrome 中却没有。这是因为我错误地自行关闭了脚本标签。呜呜

4

2 回答 2

4

自闭标签存在的原因是某些元素自然不会有标签之间的内容。例如,考虑一下<br /标签。什么时候<br></br>会有用?这真的只是浪费角色空间和时间。这种语法源于 XML 语法并成为 XHTML 的一部分。

确定哪些标签可以/应该自动关闭是由浏览器中的 HTML 解析器决定的。您正在使用的版本的 HTML 规范应该定义处理事情的方式,但当然我们都知道它不一定是这种情况。

这是一篇关于 HTML5(及过去版本)中的自闭合标签的精彩文章供您参考。

http://tiffanybbrown.com/2011/03/23/html5-does-not-allow-self-closing-tags/

于 2011-06-13T01:45:59.513 回答
4

省略各种结束标记(但不是 XHTML)实际上是有效的 HTML4 和 HTML5。这是一个完整的列表:http ://www.w3.org/TR/html5/syntax.html#optional-tags

此外,还有几个 void 元素根本不能有任何内容(如 img)。以下是这些列表: http ://www.w3.org/TR/html5/syntax.html#void-elements

至于脚本标签,有一个很好的 Stack Overflow 讨论: 为什么自闭合脚本标签不起作用?

于 2011-06-13T01:52:31.593 回答