为什么某些html开启/开始标记需要结束/结束标记?
例如,<script>
requires一个</script>
,而<img>
can (in fact, must) be self-closing(<img src="path.jpg" />
)?
我认为这与要求开始和结束标记之间的内容有关,但是以<script>
为例,<script src="file.js"></script>
之间不需要任何内容......
我问,因为我花了很多时间试图弄清楚为什么我所包含的脚本在Safari中工作但在FF或Chrome中没有。这是因为我错误地自我关闭了脚本标签。的Bleh。
答案 0 :(得分:4)
自闭标签存在的原因是某些元素自然不会有标签之间的内容。例如,考虑<br /
标记。什么时候<br></br>
会有用?这真的只是浪费了角色空间和时间。这种语法源于XML语法,并成为XHTML的一部分。
确定哪些标签可以/应该自动关闭是浏览器中的HTML解析器。您正在使用的版本的HTML规范应该定义事物的处理方式,但当然我们都知道它不一定是这种情况。
这是一篇关于HTML5(以及过去版本)中自闭标签的精彩文章供您参考。
http://tiffanybbrown.com/2011/03/23/html5-does-not-allow-self-closing-tags/
答案 1 :(得分:4)
实际上有效的HTML4和HTML5可以省略各种各样的结束标记(但不包括XHTML)。以下是完整列表:http://www.w3.org/TR/html5/syntax.html#optional-tags
此外还有几个虚空元素根本无法拥有任何内容(如img)。这是一个列表: http://www.w3.org/TR/html5/syntax.html#void-elements
至于脚本标签,有一个很好的Stack Overflow讨论: Why don't self-closing script tags work?