2012-05-29 54 views
5
可選的

HTML5參考states:如果頭元件不 緊跟一個空格字符或註釋空格字符限制,使</head>

一種頭元件的結束標記可以被省略。

這個「空格字符」限制是什麼意思?我只能認爲,像

<title>My Page</title><p>Some stuff.</p> 

是有效的,而

<title>My Page</title> 
<p>Some stuff.</p> 

並非如隱</head><body>標籤不會圍繞一個換行符。但我覺得我不在意。澄清的例子將不勝感激。

謝謝大家!

+0

我倒是隱約符合下列規則組合猜測意圖是:「如果''和''都被忽略,但目前還不清楚哪一方的空間和評論在他們之間去,所以我們完全禁止。「 –

+0

@UlrichSchwarz - 不完全。它不禁止構造,它只是解釋了你不能在頭元素內部或外部允許的標記中間使用隱式結束頭部。 – Quentin

回答

4

這只是意味着由於註釋和空格字符可能出現在head元素內部,所以它們不會隱式地結束head元素。

所以,如果你想希望的註釋(例如)頭部元素被關閉後,它關閉不只是之前,那麼你必須使用一個明確的</head>

</title> <!-- foo --> <body> 

裝置一樣

</title> <!-- foo --> </head><body> 

並且沒有的方式來表示

</title></head> <!-- foo --> <body> 

沒有使用一個明確的</head>

+0

另請注意,該規範允許您完全省略;實際上,只包含'<!doctype html>'的文檔仍然是完全有效的。 – user2428118

+0

感謝您的回答。我很確定那是什麼意思,但我不能逃避這樣的感覺,假設你想完全忽略HEAD和BODY標籤,在逐字保持這些條件的情況下這樣做的唯一方法是保持在一起(沒有空格,換行符,標籤)HEAD的最後一個子元素和BODY的第一個子元素,如我的示例中所示。 –

1

該文檔指的是元素的另一端(其中</head>通常會去)。

例如:

<head> 
    <title>Hello World</title> 
<body> 
... 

是好的,但是這顯然不是:

<head> 
    <title>Hello World</title> 
    <body> 

也不是這樣的:

<head> 
    <title>Hello World</title> 
<!-- This is a comment --> 

但是(這是一個很大的不過) ,你不應該這樣做。它導致代碼混淆,可能被某些瀏覽器支持得不好,並且在將來的HTML版本中可能無效。通過使用良好的可讀標記來保持清潔和穩定。

+1

這兩個都沒問題。只是空間和評論被視爲出現在頭部之內,而不是之後。 – Quentin

+0

語法得到了瀏覽器的很好支持,並且具有這樣的遺產,看起來不太可能在將來變得無效(XHTML是一種嘗試,它失敗了)。 – Quentin