Декларация DOCTYPE
подробнее о декларации DOCTYPE в html
Режимы отображения
Сейчас существуют три режима отображения веб-страницы
quirks mode- режим совместимости.almost standards mode- частично стандартный режим.full standards mode- стандартный режим.
Режим совместимости quirks mode нужен для эмуляции работы старых браузеров например Navigator 4 и Internet Explorer 5. В стандартном режиме full standards mode браузер ведет себя в соответствии со спецификациями W3C. almost standards mode - это нечто между quirks mode и full standards mode, он был введён для решения проблем совместимости со старыми веб-стандартами.
DOCTYPE
Браузеры используют специальную декларацию <!DOCTYPE html>, чтобы определить в каком режиме обрабатывать документ. Тогда документ будет отображаться в стандартном режиме (full standards mode). Использование этой декларации рекомендовано стандартом html 5.
Необходимо размещать декларацию <!DOCTYPE html> в самом начале документа, это было сделано для упрощения и унификации режимов рендеринга в html 5.
1
2
3
4
5
6
7
8
9
10
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
</body>
</html>
Для чего нужен DOCTYPE
- Активирует
full standards modeрежим отображения страниц по стандартамW3C. - Совместимость со всеми современными браузерами. Без этой декларации браузеры могут отобразить элементы страницы некорректно.
- Валидартор от
W3Cопределяет поDOCTYPEрежим по которому валидировать документ. - Без
DOCTYPEбраузеры могут некорректно обрабатыватьcss, игнорировать новые теги, искажать верстку.
DOCTYPE можно писать в любом регистре, но принято писать так <!DOCTYPE html>
Доступ из javascript
Браузер создает DOM модель документа при загрузке страницы и DOCTYPE является ее частью.
1
2
3
4
document.doctype // Это объект DocumentType
document.doctype.name // "html" Имя корневого элемента
document.doctype.systemId // "" Системный идентификатор
document.doctype.publicId // "" Публичный идентификатор
Если декларации в документе нет, вернется null.
Для html5 свойства publicId и systemId всегда пустые.
Если рассматривать иерархию элементов страницы DocumentType является первым дочерним узлом страницы, но не является элементом. То есть тип элемента nodeType=10.
Может быть полезно при проверке на валидность документа.
Хотите оптимизировать свой бизнес, нужен сервис, сайт или интеграция.
Бесплатно расчитаю время разработки, предложу решение вашей задачи.
