在头部,首先是:元或标题?
我正在读这个:
这个[meta]标签应该是第一个 HEAD部分,因为服务器会 用ASCII处理上面的文本 没有它只知道的特定格式 一旦分析了标签。
http://www.xul.fr/en/html5/html.php
标准是否指定了订单?
两种顺序都有缺点吗?
答案 0 :(得分:43)
正如所有其他答案已经表明的那样,通常无关紧要。以下是关于什么时候重要以及为什么会这样做的事情。
首先,既然您询问了标准,您可能想知道您引用的文本来自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>
标记是有意义的。
答案 1 :(得分:11)
标签的顺序几乎完全不相关。
该引言是在谈论<meta http-equiv="content-type">
如果您使用该标记,则应首先使用该标记,以便浏览器知道使用哪种编码来解析文档的其余部分。
只要您之前没有任何非ASCII字符,其位置无关紧要。
答案 2 :(得分:7)
除非您处理IE并想使用X-UA-COMPATIBLE
<meta http-equiv="X-UA-Compatible" content="IE=7" />
这应该是头脑中的第一个,如果它要由IE评估......(否则忽略它)
答案 3 :(得分:1)
在大多数情况下,它根本不重要。通常我会先<title>
,但这完全取决于您的偏好。
答案 4 :(得分:1)
很长一段时间,我也认为&#34; X-UA兼容&#34;元标记需要先出现或被IE忽略。应该注意,<title>
标记可以排在第一位。
此外,IE兼容元标记之前不能有其他类型的标记(<link> or <script>
)。
请参阅https://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx并注意:
X-UA兼容标头不区分大小写;但是,它必须 在所有之前出现在网页的标题(HEAD部分)中 除 title元素和其他元元素之外的其他元素。
所以,继续讨论OP的问题;再次,如果元标记是第一个或标题标记是第一个,则无关紧要。唯一真正的警告是字符集元标记(如Joel Lee&#39; s 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>
。