在<head>中,首先是:<meta>或<title>?

在头,首先:元或标题?

我正在读这个:

这个[meta]标签应该是HEAD部分中的第一个,因为服务器将把上面的文本作为ASCII处理,没有特定的格式,只有在分析标签后才知道。

http://www.xul.fr/en/html5/html.php

标准是否指定了顺序?

两种订单都有缺点吗?

由于所有其他答案已经表明,通常没有关系。 这里有更多的关于什么时候重要,为什么。

首先,由于您询问了标准,您可能想知道您所引用的文本来自W3C对HTML 4的build议:

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以外的其他编码,则需要先放置指定charset<meta>标记。 否则,没关系。 所以,为了安全起见,首先要为字符集添加<meta>标签。

标签的顺序几乎完全不相关。

那个引用是关于<meta http-equiv="content-type">
如果你使用这个标签,它应该是第一位的,这样浏览器就知道用哪个编码来parsing文档的其余部分。

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

除非你处理IE并且想使用X-UA-COMPATIBLE否则这并不重要

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

这应该是头部的第一个,如果它是由IE评估…( 否则忽略它

在大多数情况下,根本没有关系。 通常我会先把<title>放进去,但是完全取决于你的喜好。

@ Gaby aka G. Petrioli –

很长一段时间,我也认为“X-UA-Compatible”元标签需要先到达,否则被IE忽略。 应该注意的是<title>标签可以先到达。 另外,IE兼容元标签之前不能有其他types的标签( <link> or <script> )。

请参阅https://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx并注意:

X-UA兼容标头不区分大小写; 但是,除了标题元素和其他元素之外,它必须出现在网页头部(HEAD部分)之前的所有其他元素之前。

所以,要继续讨论OP的问题; 再次,如果元标记是第一个还是标题标记是第一个,则无关紧要。 唯一真正的警告是字符集元标记(正如Joel Lee的回答中所述 )。

我会补充一点,一个坚实的做法是将字符集元标记放在<head> ,紧接着是IE兼容元标记,然后是<title> 。 喜欢这个:

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

生活在<head>中的任何附加标签都可以跟在<title>