在,其中第一个:或?
在头,首先:元或标题?在<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