2011-04-06 52 views

回答

42

由於所有其他答案已經表明,通常沒有關係。這裏有更多關於何時重要以及爲什麼。

首先,既然你問到的標準,你可能想知道你是引用的文本來自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>標記。

8

標籤的順序幾乎完全不相關。

該報價正在談論<meta http-equiv="content-type">
如果您使用該標籤,它應該先到達,以便瀏覽器知道使用哪種編碼來解析文檔的其餘部分。

只要你之前沒有任何非ASCII字符,它的位置並不重要。

+2

+1請注意,但是,如果服務器已經指定了它,內容類型將被忽略。我提供了一個更詳細的答案。 – 2011-04-06 22:06:35

+0

雖然你是第一個回答我的問題,喬爾提供了一個更詳細的答案。我希望我可以將每個人的答案合併爲一個並選擇。感謝大家! – XP1 2011-04-07 20:25:21

1

在大多數情況下,根本無關緊要。通常我會先放<title>,但完全取決於您的偏好。

7

不要緊,除非你對付IE和要使用的X-UA-COMPATIBLE

<meta http-equiv="X-UA-Compatible" content="IE=7" /> 

這應該是在頭部的第一個,如果是通過IE進行評估......(否則它忽略它

1

@Gaby aka G. Petrioli -

很長一段時間,我也認爲,「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 Leeanswer above中所述)。

我想補充一點,一個堅實的做法是將字符集中繼標記放置在<head>之後,緊接着是IE兼容元標記,然後是<title>。就像這樣:

<head> 
    <meta charset="UTF-8"> 
    <meta http-equiv="x-ua-compatible" content="IE=edge"> 
    <title>Cool Page</title> 

生活在<head>可以按照<title>任何其他標記。

相關問題