Подтвердить что ты не робот

В <head>, который на первом месте: <meta> или <title>?

В голове, которая на первом месте: мета или название?

Я читал это:

Этот тег [meta] должен быть первым в HEAD, потому что сервер будет обрабатывать текст выше как ASCII с нет конкретного формата, который он только знал после анализа тега.

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

Указывает ли стандарт порядок?

Есть ли недостатки в любом порядке?

4b9b3361

Ответ 1

Как уже указывали другие ответы, это обычно не имеет значения. Здесь немного больше о том, когда это важно и почему.

Прежде всего, поскольку вы спрашивали о стандартах, вам может быть интересно узнать, что текст, который вы цитируете, исходит из рекомендаций 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> сообщает ему использовать что-то еще? Ответ в том, что это зависит...

Сервер должен указать набор символов в поле Content-Type заголовка ответа HTTP. Если это так, браузер должен использовать этот набор символов и игнорировать любой набор символов, который может быть указан в теге <meta> в обслуживаемом документе.

К сожалению, многие серверы не предоставляют эту информацию. В этом случае браузер должен что-то предпринять, чтобы начать. Что-то должно быть "ASCII-совместимым", что означает, что оно согласуется с ASCII для любых символов в диапазоне ASCII. Если в документе указан набор символов в теге <meta>, браузер начнет использовать этот набор символов. Итак, если ваш заголовок появился до этого, он уже был интерпретирован как ASCII, который может быть неправильным, в зависимости от того, что было в заголовке.

Подводя итог: если сервер не указывает кодировку, а заголовок закодирован в чем-то, отличном от ASCII, тогда вам нужно поместить тег <meta>, который сначала указывает charset. В противном случае это не имеет значения. Поэтому, чтобы быть в безопасности, имеет смысл поместить тег <meta> для набора символов в первую очередь.

Ответ 2

Порядок тегов почти не имеет значения.

Эта цитата говорит о <meta http-equiv="content-type">.
Если вы используете этот тег, он должен быть первым, чтобы браузер знал, какую кодировку использовать для анализа остальной части документа.

Пока у вас нет каких-либо символов, отличных от ASCII, его местоположение не имеет значения.

Ответ 3

Не имеет значения, если вы не имеете дело с IE и хотите использовать X-UA-COMPATIBLE

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

Это должно быть первое в голове, если оно должно быть оценено IE... (в противном случае оно игнорирует его)

Ответ 4

В большинстве случаев это вообще не имеет значения. Обычно я помещаю <title> во-первых, но это полностью зависит от ваших предпочтений.

Ответ 5

@Габи ака Г. Петриоли -

В течение долгого времени я тоже думал, что метатег "X-UA-Compatible" должен быть первым, или 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 ответить выше).

Я бы добавил, что последовательной практикой является размещение метатега набора символов сначала внутри <head>, за которым следует сразу метатег IE Compatible, а затем <title>. Вот так:

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

Любые дополнительные теги, которые живут в <head>, могут следовать за <title>.