Правильный 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.

This entry was posted in HTML. Bookmark the permalink. Follow any comments here with the RSS feed for this post.

11 Responses to Правильный DOCTYPE

  1. Gorik says:

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

  2. neutrino says:

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

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

  3. Gorik says:

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

  4. neutrino says:

    > Gorik

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

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

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

  5. werewolfGSM says:

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

  6. Я says:

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

  7. Wincert says:

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

  8. Curly Brace says:

    @Wincert выбирайте самый строгий — не ошибетесь. XHTML Strict

  9. Tohion says:

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

  10. Curly Brace says:

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

  11. Кстати как раз Татьяныч и не использует доктайп, по крайней мре в своих прожектах

Leave a Reply

Your email is never published nor shared. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>