A Тип документа или Объявление типа документа связывает документ с Определение типа документа .
Определение типа документа является стандартом для документа XML. Существует много DTD для документов XML и XHTML. Сам по себе XML не имеет большой части схемы или очень специфического набора правил, кроме требования, чтобы все было правильно сформировано. Вы можете думать о DTD как о более конкретной схеме для документа .
Режимы рендеринга
Из-за движения стандартов большинство современных браузеров фактически имеют разные режимы рендеринга ( режим стандартов , для рендеринга вашего документа и CSS в соответствии с более новыми веб-стандартами, а также режим причуд , при этом браузер возвращает некоторые идеи рендеринга с первых дней Интернета). Эти режимы установлены для целей обратной совместимости. Огромный ландшафт веб-страниц, созданных в первую эру Интернета, отображается в соответствии с правилами их времени, в то время как более новые документы могут апеллировать к новой волне стандартов. По прошествии времени и создания новых форматов потенциально может быть создано соответствующее DTD.
Несоответствия браузера
В идеальном мире страница, загружаемая браузером, будет читать Doctype сверху и использовать его для поиска определения типа документа. Затем он будет использовать схему этого DTD в качестве основы для чтения остальной части документа. Таким образом, типы документов были бы важны для проверки документов разметки. DTD предоставит стандарт, по которому ваш документ должен быть проверен.
К сожалению, это не идеальный мир. Браузеры не обязательно ведут себя здесь непротиворечиво, и если они это делают, непротиворечивое поведение не совсем соответствует первоначальному видению Doctypes. Хотя синтаксический анализ выполняется независимо от Doctype, основные браузеры, по крайней мере, проверяют Doctype для определения режима рендеринга. Если ваш Doctype отсутствует или является неполным, браузер, скорее всего, будет выполнять рендеринг в режиме quirks . Чтобы правильно написанные современные документы отображались правильно, браузер должен выполнять рендеринг в режиме стандартов . Mozilla, Safari и некоторые последние версии Opera на самом деле реализуют режим Почти Стандарты , который полностью посвящен переходным страницам.
Когда вы изменяете Doctype и замечаете изменения в способе отображения страницы, это происходит потому, что браузер может применять немного другой набор правил, когда он пытается проанализировать документ. Как следствие, получающаяся страница может немного отличаться, в зависимости от того, все ли ее части соответствуют DTD, или, по крайней мере, в зависимости от браузера, что ваши данные проверяются в режиме рендеринга, который предлагает doctype.
Выбор типа документа
В целях соблюдения стандартов следует использовать строгие типы документов, когда это возможно.
При написании в XHTML этот Doctype является общим:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Когда пишете в HTML 4.1 , вместо этого обычно используется:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Некоторые полные типы документов для XHTML и HTML 4 перечислены здесь для полноты:
<!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 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<!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 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
Дебаты о строгих и переходных типах учений
Стандарты-евангелисты призвали веб-разработчиков прекратить использование переходного Doctype на новых страницах и вместо этого использовать Strict. Опять же, это тот случай, когда теория и практика сталкиваются с трудностями примирения. Первоначальная надежда переходного Doctype заключалась в том, чтобы предоставить промежуточный дом для перехода устаревших веб-сайтов на соответствие стандартам. С переходными типами документов ограничение на элементы и атрибуты буквально «менее строгое», поэтому разработчики смогут быстрее начать работу в стандартном режиме и постепенно устранить несоответствия.
Противоречие существует, потому что разработчику не всегда так просто изменить Doctype в корпоративной среде. Внештатным разработчикам и создателям веб-сайтов малого или среднего размера часто бывает проще определить свой Doctype и осуществить этот переход. В корпоративной производственной среде для востребованного веб-сервиса по своей природе существуют более сложные зависимости от устаревших систем и сторонних программных продуктов, которые сами по себе могут быть на пути к удалению или перепроектированию, но выполнение таких изменений должно быть сделано методично и постепенно.
Полезные инструменты
W3C ( World Wide Web Consortium ) - это группа, которая играет активную роль в определении стандартов такого рода. Они поддерживают полезный онлайн-инструмент на http://validator.w3.org/ для проверки и проверки документов на соответствие их стандартам. Существует множество других сторонних инструментов и расширения браузера с аналогичными функциями.