Немного о DOCTYPE
В этой небольшой статье хотелось бы затронуть такой немаловажный вопрос, как использование тега "doctype". Если быть точнее, то doctype не является тегом html, а указывает браузеру какую версию языка разметки использовать для корректного отображения страницы (например: XHTML 1.0 или HTML 4.01).
Возможно вы сталкивались с ситуацией, когда все сделано правильно (html-разметка, css), а страница все равно отображается некорректно... Возможно все дело именно в отсутствии, либо неточном указании данного "тега". В данном случае браузер переключается в "особый" режим работы (считая что вы отошли от стандартов и позволили себе немного вольностей) и пытается отобразить страницу так как считает нужным, а не так как вы этого хотели. Понятно, что такое поведение браузера нас не устраивает...
Тег doctype указывает на файл объявления типа документа (Document Type Definition (DTD)). В свою очередь DTD определяет, какие правила, тэги, атрибуты и их значения действительны для конкретного html.
Пример наиболее распространенных видов doctype:
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Полный список DTD рекомендованных W3C.
И немного о том, что означает: Strict, Transitional и Frameset.
- Strict - в данном DTD отсутствуют теги имеющие статус "опытный" (presentational) либо нежелательный к применению (deprecated).
- Transitional - более мягкий (переходный) DTD. Он включает в себя все от Strict, а также позволяет использовать опытные и нежелательные теги. Нельзя использовать фреймы.
- Frameset - в свою очередь наследует все от Transitional и позволяет использовать фреймы.