В 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 для изменения порядка вещей, но программы чтения с экрана обычно читают информацию в исходном порядке, поисковые индексы извлекают вещи в исходном порядке и т. Д.