2012-08-15 42 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

相關問題