В HTML DOCTYPE первом должен быть <html>элемент, за которым следует один элемент, который должен содержать <head>элемент, содержащий <title>элемент, за которым следует <body>элемент. См. Описание глобальной структуры документа HTML в HTML 4.01 и черновике HTML5 ; фактические требования в основном те же, за исключением требований DOCTYPE, но они описаны по-другому.
Актуальные теги (<html> , </html>, <head>и т.д.) не являются обязательными; элементы будут созданы автоматически, если теги не существуют. <title>- единственный обязательный тег в HTML. Самый короткий действительный документ HTML 4.01 (по крайней мере, который я мог сгенерировать) (нужен, <p>потому что в нем должно быть что-то, <body>чтобы быть действительным):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"><title></title><p>
И самый короткий действующий документ HTML5:
<!DOCTYPE html><title></title>
Обратите внимание, что в XHTML все теги должны быть указаны явно; никакие элементы не будут вставлены неявно.
Браузеры в некоторых случаях выполняют анализ типа контента, чтобы определить тип ресурса, который не был указан с помощью Content-Typeзаголовка HTTP, а также анализ кодировки символов, если Content-Typeзаголовок не был предоставлен или не включаетcharset (обычно вы должны попробовать чтобы включить эти заголовки и убедиться, что они верны, но есть некоторые обстоятельства, в которых вы не можете, например, локальные файлы, не передаваемые по HTTP). Однако для этих целей они обнюхивают только ограниченное количество байтов в начале документа, поэтому все, что предназначено для воздействия на сниффинг контента или кодировки символов, должно быть ближе к началу документа.
По этой причине HTML5 указывает, что любой metaтег, который используется для указания набора символов (либо<meta http-equiv="Content-type" content="text/html; charset=..."> или просто <meta charset=...>), должен находиться в пределах первых 1024 байтов файла, чтобы вступил в силу. Итак, если вы собираетесь включить информацию о кодировке символов в свой документ, вам следует поместить тег в начале файла, возможно, даже перед <title>элементом. Но помните, что этот тег не нужен, если вы правильно укажете Content-typeзаголовок.
В CSS более поздние объявления стилей имеют приоритет перед более ранними при прочих равных. Таким образом, вам обычно следует размещать наиболее общие таблицы стилей, которые могут быть переопределены раньше, а более конкретные таблицы стилей - позже.
По соображениям производительности может быть хорошей идеей разместить скрипты внизу страницы, прямо перед </body>, потому что загрузка скриптов блокирует отображение страницы.
Очевидно, <script> теги должны быть упорядочены так, чтобы в сценариях, зависящих от каждого порядка, сначала загружались зависимости.
В целом, за исключением ограничений, которые я уже указал, порядок тегов внутри <head>не должен иметь большого значения, кроме удобства чтения. Я предпочитаю смотреть <title>вверху, а другой<meta> теги в каком-то логическом порядке.
В большинстве случаев порядок, в котором вы должны помещать элементы в тело HTML-документа, должен соответствовать порядку, в котором они должны отображаться, или порядку, в котором к ним следует обращаться. Вы можете использовать CSS для изменения порядка вещей, но программы чтения с экрана обычно читают информацию в исходном порядке, поисковые индексы извлекают вещи в исходном порядке и т. Д.