2010-07-14 199 views
5

之間是否曾經有過任何東西應該(或可以?)置於</body></html>標籤之間?或者他們應該總是配對?結尾</body>標籤與結尾</html>標籤

我正在閱讀HTML5規範,這讓我想到了頁面的基本結構。

是否有任何情況下可以/應該在</html>標籤之後放置任何東西?它曾經是福音,文件開始只是<html>,但<!doctype...>改變了這一點。會不會有一個理由來改變這個文檔的結尾?

回答

4

<body>標記是可選的,因爲可以使用<frameset>代替。因此,他們並不總是配對。標籤之間可以存在空白區域。另外,<body>可以在<head>之前。

目前,關閉</html>標籤之後的任何內容通常被認爲是內嵌文本。 Firefox和IE都呈現它。

每種風格的Document Type Definitions (DTDs)都包含您尋求的答案。

0

不,不是真的。在</html>之後沒有任何理由。畢竟,您正在定義一個html文檔。 DocType是由於瀏覽器呈現不一致而引入的。

至於身體標籤。我有一天可以看到「腳」作爲一個標籤來介紹,以匹配頂部的頭部。我能看到它被使用的唯一的東西就是在文檔之後加載的javascript。現在,就在身體標籤結束之前。

0

有些人喜歡在頁面完成加載後在主體部分的底部或</body>標記下面放置javascript。真的,如果你使用jQuery,沒有理由這樣做,因爲$(document).ready()函數使它沒有實際意義。

然而,沒有結構標籤應該在那裏,實際上JS應該在<head>部分。

+0

-1用於暗示把JS放在''元素內 – 2010-07-15 10:38:33

+0

什麼?爲什麼你不應該把JavaScript放在腦海中?這就是它去的地方! – smdrager 2010-07-15 14:02:41

+0

un -1'ed。不完全同意(在結構上/語義上,smdrager是對的,但是性能方面,Denis有一個觀點),但是一些JavaScript(特別是異步代碼)可以在不造成任何問題的情況下發揮作用。 – Yahel 2010-07-15 15:03:32

0

</html>之間以及</body></html>之間都不可以。

另一方面,請記住即使標籤不存在也隱含HTML,HEAD和BODY,因此html文檔不必以</html>結尾。

當然,瀏覽器傾向於嘗試猜測作者想要的是什麼,而不是打破無效標記,所以是的,您可以期待人們在</html>之後放置東西,因爲它按照自己的意願進行了操作。