Опубликован: 28.11.2008 | Доступ: свободный | Студентов: 8250 / 872 | Оценка: 4.49 / 4.28 | Длительность: 37:04:00
Лекция 14:

Выбор правильного doctype для документов HTML

< Лекция 13 || Лекция 14: 12 || Лекция 15 >
Аннотация: Более подробно рассматривается элемент doctype, показаны его функции при проверке кода HTML и порядок выбора doctype для документа. А также, объявление XML

Введение

В "лекции 13" была исследована анатомия раздела head документа HTML, с кратким рассмотрением различных объектов, которые могут содержаться в head, и их функций. В данной лекции будет более подробно рассмотрен объект doctype , показывая его функции при проверке кода HTML и порядок выбора doctype для документа, и объявление XML, которое редко может понадобиться, но иногда будет встречаться.

  • Сначала идет doctype
  • Режимы переключения и представления doctype
  • Валидация
  • Выбор doctype
  • Объявление XML
  • Заключение
  • Контрольные вопросы
  • Дополнительное чтение

Сначала идет doctype

В любом создаваемом документе HTML необходимо, прежде всего, создать объявление DTD. Если вы никогда не слышали, чтобы кто-то упоминал раньше об объявлении DTD, не беспокойтесь. Чтобы упростить ситуацию его часто называют " doctype " ("тип документа"), как оно и будет называться до конца этой лекции.

Вы наверно хотите знать, что такое " DTD " или doctype. DTD является сокращением от "Document Type Definition" ("Определение типа документа"), и, кроме всего прочего, оно определяет, какие элементы и атрибуты допустимо использовать в определенной разновидности HTML — совершенно верно, существуют различные версии HTML, которые используются сегодня в Web, но не беспокойтесь об этом — вам надо в действительности беспокоиться только об одном.

doctype используется для двух вещей, различными видами программного обеспечения:

  1. Браузеры Web используют его для определения, какой режим воспроизведения они должны использовать (режимы воспроизведения будут рассмотрены позже).
  2. Валидаторы разметки просматривают doctype , чтобы определить, согласно каким правилам они должны проверять документ (об этом также будет рассказано позже).

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

Вот пример:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">

Пока это может выглядеть для вас какой-то бессмыслицей, поэтому позвольте мне предложить несколько упрощенное объяснение, как это создается. Значительно более детальное рассмотрение можно найти в статье !DOCTYPE (http://www.blooberry.com/indexdot/html/tagpages/d/doctype.htm).

Наиболее важной частью doctype являются две строки, ограниченные кавычками. "-//W3C//DTD HTML 4.01//EN" утверждает, что это документ DTD, опубликованный W3C, что этот DTD описывает HTML версии 4.01, и что в этом DTD используется английский язык.

Вторая строка, "http://www.w3.org/TR/html4/strict.dtd", является указателем URL, который указывает на документ DTD, используемый для этого doctype .

Даже, хотя doctype может выглядеть немного странно, он требуется спецификациям HTML и XHTML. Если doctype будут отсутствовать, то будет получена ошибка валидации, когда синтаксис документа будет проверяться валидатором разметки W3C Markup или другими инструментами, которые проверяют документ HTML на наличие ошибок. Некоторые браузеры Web даже содержат такие функции по умолчанию, в то время как другие могут добавлять их с помощью расширений.

Режимы переключения и представления doctype

Если doctype отсутствует, браузеры будут обрабатывать и представлять документ в любом случае — они должны сделать попытку представить все разновидности странных объектов, с которыми они столкнутся в Web, поэтому они не всегда могут быть очень разборчивыми. Однако без doctype результаты могут выглядеть не так, как предполагалось, в связи с так называемым "анализом doctype " или "переключением doctype ".

Большинство браузеров Web, выпущенных в 21 веке, ищут doctype любых документов HTML, которые они встретят, и используют его, чтобы решить, позаботился ли автор документов написать свой код HTML и CSS правильно, в соответствии со стандартами Web.

Если они находят doctype , который указывает, что документ закодирован хорошо, они используют так называемый "режим Standards", когда формируют страницу. В стандартном режиме браузеры обычно стараются представить страницу в соответствии со спецификациями CSS — они надеются, что человек, который создал документ, знал, что делает.

С другой стороны, если встречается устаревший или неполный doctype , используется "режим Quirks", который в большей степени обратно совместим со старыми методами и старыми браузерами. Режим Quirks предполагает, что документ является старым, или что он не был создан с учетом стандартов Web — это означает, что страница Web будет по-прежнему изображаться, но потребует для этого значительно больше вычислительной мощности, и вы, скорее всего, получите странный или безобразный результат, который совершенно не ожидали.

Различия связаны в основном с тем, как представляется CSS, и только в редких случаях с тем, как интерпретируется реальный HTML.

Как дизайнер Web или разработчик, вы получите наиболее согласованные результаты, проверяя, что все браузеры используют режим представления Standards, поэтому вы должны придерживаться стандартов Web, и использовать правильный doctype !

Валидация

Как упоминалось ранее, doctype используют также валидаторы, о которых мы узнаем больше позже в этой серии статей. Пока, все что нужно знать, состоит в том, что валидатор используется для проверки правильности синтаксиса документа HTML, что он не содержит никаких ошибок. Программы-валидаторы просматривают использованный doctype , чтобы определить, какие правила использовать. Это отчасти похоже на указание программе проверки грамматики языка, на котором написан документ. Если не сообщить это, то она не будет знать, какие правила правописания и грамматики использовать.

Выбор doctype

Итак, теперь, когда мы знаем, что нужно вставить doctype , и для чего он используется, как узнать, какой из них выбрать? Дело в том, что существует несколько видов doctype . Можно даже создать свой собственный, если требуется что-то более специальное. Но я не собираюсь перечислять целое множество различных doctype . Я постараюсь сохранить все простым и ограничусь двумя.

Если ваш документ является кодом HTML, используйте:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
       "http://www.w3.org/TR/html4/strict.dtd">

Если ваш документ является XHTML, используйте:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Примечание: "Реальный" XHTML должен быть представлен браузеру как код XML, но детали того, как и когда делать это, и особенности, которые имеются, находятся за рамками этой конкретной лекции.

Оба эти doctype гарантируют, что браузер будет использовать свой режим Standards при работе с этим документом. Наиболее заметный эффект, который будет оказан на работу, состоит в том, что будут получены более согласованные результаты при оформлении документа с помощью CSS. Чтобы увидеть другие doctype , которые можно использовать, обратитесь к опубликованному W3C списку DTD, рекомендованных для использования в документах Web (http://www.w3.org/QA/2002/04/valid-dtd-list.html).

Можно заметить, что оба указанных здесь doctype называются "Strict" ("Строгий"). Хотя это может звучать немного угрожающим, это не так.

Существуют строгая и переходная разновидности HTML и XHTML. Строгий в данном случае означает, что doctype допускает меньше разметки представления, чем переходный doctype . Разметка представления, которая не допускается, не должна в действительности присутствовать здесь в любом случае, так как вы должны использовать HTML, чтобы определить структуру и значение документов, и CSS для определения, как они представляются. Использование строгого doctype поможет с этим, так как валидатор будет предупреждать обо всех элементах или атрибутах представления, которые проникли в код.

< Лекция 13 || Лекция 14: 12 || Лекция 15 >
Марина Походаева
Марина Походаева

Помогите мне. Я ничего не понимаю в курсе ((((((   (от слова "совсем") и мне от этого очень грустно. Есть ли какие-нибудь курсы для "чайников", самые простые в объяснении. ПАМАГИТЕ!!!

Федор Антонов
Федор Антонов

Здравствуйте!

Записался на ваш курс, но не понимаю как произвести оплату.

Надо ли писать заявление и, если да, то куда отправлять?

как я получу диплом о профессиональной переподготовке?