В HTML DOCTYPE
першим повинен бути must, за яким слід один <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 для перестановки речей, але зчитувачі екрана, як правило, читають речі у вихідному порядку, індекси пошуку витягають речі у вихідному порядку тощо.