在頭,首先:元或標題?在<head>,其中第一個:<meta>或<title>?
我讀這樣的:
這[元]標籤應該在 HEAD部分的第一個,因爲服務器 過程ASCII與 沒有特定的格式上面的文字,它的唯一已知一旦標籤被分析,即可得到 。
http://www.xul.fr/en/html5/html.php
是否標準指定的順序?
這兩種順序都有缺點嗎?
在頭,首先:元或標題?在<head>,其中第一個:<meta>或<title>?
我讀這樣的:
這[元]標籤應該在 HEAD部分的第一個,因爲服務器 過程ASCII與 沒有特定的格式上面的文字,它的唯一已知一旦標籤被分析,即可得到 。
http://www.xul.fr/en/html5/html.php
是否標準指定的順序?
這兩種順序都有缺點嗎?
由於所有其他答案已經表明,通常沒有關係。這裏有更多關於何時重要以及爲什麼。
首先,既然你問到的標準,你可能想知道你是引用的文本來自W3C的建議和HTML 4:
http://www.w3.org/TR/html4/charset.html#h-5.2.2
有在類似的討論HTML標準草案5:
http://dev.w3.org/html5/markup/syntax.html#encoding-declaration
根本的問題在這裏的是,瀏覽器必須使用一些字符集編碼開始處理文檔它從服務器接收。那麼,如果從一個字符集開始,然後<meta>
標籤告訴它使用其他東西,會發生什麼?答案是,這取決於...
服務器應指定HTTP響應標頭的Content-Type
字段中的字符集。如果確實如此,瀏覽器應該使用該字符集並忽略可能在被投放的文檔中的<meta>
標籤中指示的任何字符集。
不幸的是,許多服務器不提供此信息。在這種情況下,瀏覽器必須假設一些事情開始。東西必須是「ASCII兼容的」,這意味着它與ASCII範圍內的任何字符都符合ASCII。如果文檔指定<meta>
標籤中的字符集,瀏覽器將開始使用該字符集。所以,如果您的標題在此之前出現,它已被解釋爲ASCII,這可能是錯誤的,具體取決於標題中的內容。總結一下:如果服務器沒有指定編碼,並且標題的編碼方式不是ASCII,那麼您需要首先將<meta>
標記指定爲charset
。否則,這並不重要。因此,爲了安全起見,首先要爲字符集設置<meta>
標記。
標籤的順序幾乎完全不相關。
該報價正在談論<meta http-equiv="content-type">
。
如果您使用該標籤,它應該先到達,以便瀏覽器知道使用哪種編碼來解析文檔的其餘部分。
只要你之前沒有任何非ASCII字符,它的位置並不重要。
+1請注意,但是,如果服務器已經指定了它,內容類型將被忽略。我提供了一個更詳細的答案。 – 2011-04-06 22:06:35
雖然你是第一個回答我的問題,喬爾提供了一個更詳細的答案。我希望我可以將每個人的答案合併爲一個並選擇。感謝大家! – XP1 2011-04-07 20:25:21
在大多數情況下,根本無關緊要。通常我會先放<title>
,但完全取決於您的偏好。
不要緊,除非你對付IE和要使用的X-UA-COMPATIBLE
<meta http-equiv="X-UA-Compatible" content="IE=7" />
這應該是在頭部的第一個,如果是通過IE進行評估......(否則它忽略它)
很長一段時間,我也認爲,「X-UA兼容」 meta標籤需要是第一位的,或者是由IE忽略。應該指出的是,<title>
標籤可以排名第一。 此外,IE兼容元標記之前不能有其他類型的標記(<link> or <script>
)。
請參閱https://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx及注意事項:
的X-UA-Compatible標頭不區分大小寫;但是,除標題元素和其他元元素之外的所有 其他元素之前,必須在網頁標題(HEAD部分)中出現 。
因此,繼續與OP的問題的主題;再次,如果元標記是第一個還是標題標記是第一個,則無關緊要。唯一真正的警告是字符集元標記(如Joel Lee的answer above中所述)。
我想補充一點,一個堅實的做法是將字符集中繼標記放置在<head>
之後,緊接着是IE兼容元標記,然後是<title>
。就像這樣:
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<title>Cool Page</title>
生活在<head>
可以按照<title>
任何其他標記。
沒關係,但是我通常會先''第一個 – Seth 2011-04-06 20:22:39