2011-04-06 51 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>任何其他标记。

相关问题