< The Webmakers Lounge />

We are responsible for the View Source

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

10 комментариев на “Правильный DOCTYPE”

  1. Gorik сказал:

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

  2. neutrino сказал:

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

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

  3. Gorik сказал:

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

  4. neutrino сказал:

    > Gorik

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

    А что касается DOCTYPE, так DW 8 их генерирует всегда и правильно

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

  5. werewolfGSM сказал:

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

  6. Я сказал:

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

  7. Wincert сказал:

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

  8. Curly Brace сказал:

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

  9. Tohion сказал:

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

  10. Curly Brace сказал:

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

Оставить ответ

Ссылки в тему

Варианты подписки