Правильный DOCTYPE

Что такое DOCTYPE? Это способ указать браузеру, как правильно отображать документ и по какой схеме.

Существует много типов HTML , как то: HTML 4.01 Strict, HTML 4.01 Transitional, XHTML 1.0 Strict и множество других. DOCTYPE указывает браузеру структуру, элементы и их атрибуты для каждого типа HTML.

Указывание DOCTYPE критично, так как при его отсутствии браузер попытается отрендерить документ так как он считает нужным, а не так как этого хотите вы и/или требуют стандарты. Ни о какой валидации соответственно и речи быть не может. Можно провести часы, пытаясь заставить браузер отобразить то, что вам нужно без DOCTYPE и не добиться успеха.

Ранее ситуация была такова, что даже у W3C не было однозначных рекоммендаций по этому вопросу, но сейчас это изменилось и я привожу вам образец и список DOCTYPE, рекоммендованых к использованию W3C.

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>An XHTML 1.0 Strict standard template</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="Content-Style-Type" content="text/css" />
</head>
<body>
<p>… Your HTML content here …</p>
</body>
</html>

Наиболее распространенные виды DOCTYPE:

HTML 4.01 – Strict, Transitional, Frameset:

<!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">

XHTML 1.0 – Strict, Transitional, Frameset:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.1 – DTD:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Более полный список доступен на сайте W3C.

По поводу того какой из трех (Strict, Transitional, Frameset) использовать, решать вам, в зависимости от поставленых задач.

Немного ссылок:

– Полезная, но немного устаревшая статья о DOCTYPE, на сайте Webmascon, который к сожалению перестал обновляться.

Don’t forget to add a doctype by W3C.

12 thoughts on “Правильный DOCTYPE

  1. А я юзаю Dreamweaver 8 и о таких вещах даже не задумываюсь:)

  2. [quote comment=”152″]А я юзаю Dreamweaver 8 и о таких вещах даже не задумываюсь:)[/quote]

    Я бы назвал это преступлением, не смотря на то что Dreamweaver 8 все таки лучше чем остальное дерьмо в стиле WYSIWYG :)

  3. Вы меня не кажется не поняли. :) Dreamweaver я юзаю ТОЛЬКО как хороший текстовый редактор для HTML (приятная подсветка синтаксиса, автодополнение и т.д.). Все его WYSIWYG-фичи я категорически не признаю и не использую.
    А что касается DOCTYPE, так DW 8 их генерирует всегда и правильно, так что об этом, как я уже сказал, я не задумыюсь.

  4. > Gorik

    Разве есть мало текстовых редакторов с подсветкой, автодополнением и прочим? :) Рекомендую EditPlus.

    [quote comment=”158″]А что касается DOCTYPE, так DW 8 их генерирует всегда и правильно[/quote]

    А откуда он знает какой DOCTYPE нужен? :) Разве что всегда один и тот же.

  5. Что я могу сказать, из за того, что DW-8 “сгенерил” неправильный DOCTYPE (transitional.dtd вместо xhtml.dtd)потратил в пустую драгоценный рабочий день. Браузеры различно отображали абсолютное позиционирование слоев. Так FF помещал ДИВ относительно родительского элемента (другого ДИВ’а), а IE относительно окна броузера. Вот какая вот история. Так что теперь я к этой строчке отношусь более внимательно и всем советую (особенно когда появляются необъяснимые баги).

  6. DOCTYPE это поле для профессионалов уже. остальные на него действительно не обращают внимания. Можно конечно послушать Лебедева и вообще положить на него, но если стоит цель научиться верстать грамотно и красиво, то все же на стандарты не стоит забивать. Strict рулит :)

  7. Так а как определить какой доктайп мне более подходит? Я большой разницы между ними не вижу.

  8. Я так вообще просто напрочь убираю все строки, связанные с doctype после того как чуть головой об стену не начал биться над одним багом.
    На это теперь первым делом смотрю.

  9. Tohion, это очень опрометчивое решение. Таким образом вы предоставляете браузеру выбирать как ему рендерить документы. А IE умеет делать это со вкусом )). Гораздо легче бороться с известными багами при Strict, чем гадать что именно происходит каждый раз в Quirks Mode.

  10. Специальный тег DOCTYPE корректно работает только при наличии
    одной кавычки между описанием имени и адресом спецификации.

Leave a Reply

Your email address will not be published. Required fields are marked *