web-dev-qa-db-ja.com

<head>の最初に来る:<meta>または<title>?

最初に来るのは、メタとタイトルのどちらですか。

私はこれを読んでいました:

この[メタ]タグは、HEADセクションの最初にある必要があります。サーバーは上記のテキストをASCIIタグが分析されると.

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

規格は順序を指定していますか?

どちらの順序にも欠点はありますか?

45
XP1

他のすべての回答がすでに示しているので、通常それは問題ではありません。重要なタイミングと理由について、もう少し詳しく説明します。

まず、標準について質問したので、引用しているテキストがHTML 4のW3C推奨事項に基づいていることを知りたいと思うかもしれません。

http://www.w3.org/TR/html4/charset.html#h-5.2.2

HTML 5ドラフト標準でも同様の議論があります。

http://dev.w3.org/html5/markup/syntax.html#encoding-declaration

ここでの根本的な問題は、ブラウザがサーバーから受信するドキュメントの処理を開始するために、いくつかの文字セットエンコーディングを使用する必要があることです。では、1つの文字セットで開始し、<meta>タグが別の文字セットを使用するように指示するとどうなりますか?答えは、状況によります...

serverは、HTTP応答ヘッダーのContent-Typeフィールドに文字セットを指定する必要があります。含まれている場合、ブラウザはその文字セットを使用し、提供されるドキュメントの<meta>タグで示されている可能性のある文字セットをすべて無視することになっています。

残念ながら、多くのサーバーはこの情報を提供していません。その場合、ブラウザーは開始するために何かを想定する必要があります。何かは「ASCII互換」でなければなりません。つまり、ASCII ASCIIの範囲のすべての文字に対して一致します。ドキュメントで文字セットが指定されている場合<meta>タグでは、ブラウザはその文字セットの使用を開始します。そのため、タイトルがその前にある場合は、ASCIIとして既に解釈されており、タイトルの内容によっては間違っている可能性があります。

要約すると、サーバーがエンコードを指定せず、タイトルがASCII以外でエンコードされている場合は、charsetを指定する<meta>タグを最初に配置する必要があります。それ以外の場合は問題ありません。したがって、安全を確保するために、文字セットの<meta>タグを最初に置くのが理にかなっています。

45
Joel Lee

タグの順序はほぼ完全に無関係です。

その引用は<meta http-equiv="content-type">について話している。
そのタグを使用する場合は、最初に来る必要があります。これにより、ブラウザは、ドキュメントの残りの部分を解析するために使用するエンコーディングを認識します。

その前に非ASCII文字がない限り、その場所は重要ではありません。

11
SLaks

IEを扱い、X-UA-COMPATIBLE

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

これがIEによって評価される場合、これは頭の中で最初のものでなければなりません...(それ以外の場合は無視されます

7

@ Gaby aka G. Petrioli -

私も長い間、「X-UA-Compatible」メタタグが最初に来る必要があるか、IEによって無視されると考えていました。 <title>タグcanが最初に来ることに注意してください。さらに、IE互換性のあるメタタグの前に、他のタイプのタグ(<link> or <script>)を置くことはできません。

https://msdn.Microsoft.com/en-us/library/jj676915(v = vs.85).aspx を参照して、次の点に注意してください。

X-UA-Compatibleヘッダーは大文字と小文字を区別しません。ただし、Webページのヘッダー(HEADセクション)の前に、title要素とその他のメタ要素

したがって、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>の後に続く可能性があります。

1
Jon Ryser

ほとんどの場合、それはまったく問題ではありません。通常私は<title>最初に、それは完全にあなたの好み次第です。

1
voidzm