2012-08-15 41 views
6

我正在编写一个HTML页面,并注意到HTML标头标记不完全一致。其中一些需要结束标签,有些则不需要。为什么“脚本”需要结束标签,但“元”不?

例如,script标签确实需要结束标签,但meta不需要。现在我不知道为什么

+0

http://stackoverflow.com/a/206409/362536 – Brad 2012-08-15 14:42:27

+1

见这里:[http://stackoverflow.com/questions/69913/why-dont-self-closing-script标签都有效工作] [1] [1]:http://stackoverflow.com/questions/69913/why-dont-self-closing-script-tags-work – Oriol 2012-08-15 14:42:31

+2

上述链接都指自动关闭标签语法(一种XML概念),而不是解释为什么脚本没有定义为EMPTY(因此需要明确关闭)。 – Quentin 2012-08-15 14:45:29

回答

2

我相信这是具有与当前系统是建立在制做的只是一个任意的理由...

“如果任何人的好奇,最终的原因是,HTML原本是SGML的方言,这是XML的古怪的哥哥在SGML-land中,可以在DTD中将标签指定为自闭(例如BR,HR,INPUT),隐式可关闭(例如P,LI,TD)或明确可关闭(例如, TABLE,DIV,SCRIPT)。XML当然没有这个概念。“

来自:https://stackoverflow.com/a/3327807/773263

9

script标记不是空的(非封闭)标记,因为它有时包含内容(Javascript代码),但meta标记从来不会。
有两种方法可以将Javascript放入网页中。第一种方式是包括外部文件:

<script src="path/to/my/script.js"></script> 

第二种方式是把JavaScript的权利HTML文件中,就像这样:

<script> 
    Javascript goes here 
</script> 

所以有时候,script需要有内容。但另一方面,meta标签只需提供有关当前页面的少量信息,因此一个空标签就足够了。

+1

即将发布相同回答。从技术上讲,某些浏览器仍然可以使用自动关闭脚本标记,但使用它们是不好的做法。 – KingCronus 2012-08-15 14:43:11

相关问题