Типи документів, перемикання типів документа і режимів браузера

Схема DTD (Document Туре Definition - визначення типу документа) являє собою набір правил, що читаються комп'ютером і визначають, що дозволено і не дозволено в конкретному документі XML або (X)HTML. Браузери використовують ці правила при синтаксичному розборі Web-сторінки, щоб перевірити, чи дійсна вона. Браузери дізнаються, яка схема DTD і, отже, версія (X)HTML використовується, проаналізувавши оголошення DOСТУРЕ, розміщене на сторінці.

Оголошення DOСТУРЕ являє собою рядок або два рядки коду, розміщені на початку документа (X)HTML і описують використовувану DTD. Наприклад, наведене нижче оголошення DOСТУРЕ означає, що на сторінці використовується DTD версії XHTML 1.0 Strict.
<!DОСТУРЕ 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">

Оголошення DOСТУРЕ зазвичай містить адресу URL використовуваного файлу DTD. Якщо схема DTD стандартна, браузери найчастіше не читають цей файл.

Перевірка на дійсність

Код документа (X)HTML повинен бути не тільки синтаксично правильним (syntactically correct), але і дійсним (valid). Якщо код недійсний, браузер спробує інтерпретувати розмітку самостійно по одному з відомих йому правилам, що може призвести до небажаних результатів. Більш того, якщо документ отриманий з правильним типом MIME, браузер, що розуміє мову XML, не виведе недійсну сторінку взагалі. Щоб перевірити, чи дійсний документ, браузеру має бути відома схема DTD, використовувана в документі. Вона надається браузеру в оголошенні DОСТУРЕ.

Перевірити документ на дійсність можна за допомогою спеціальної програми перевірки. Для цього можна застосувати офіційну програму концерну W3С або будь-яку комерційну програму. Багато редакторів (X)HTML містять вбудовані функції перевірки на валідність. Крім того, ви можете скопіювати програму концерну W3С на свій локальний диск і користуватися нею без підключення до мережі. Програма перевірки повідомить вам, чи дійсний документ, і якщо ні, то чому.

Крім усього іншого, перевірка на дійсність корисна тим, що вона дозволяє виявити помилки в коді документа. Перевіряти документ на дійсність рекомендується якомога частіше з самого початку розробки. Проте перевірка на валідність не є панацеєю, багато хороших сторінок не проходять перевірку через застарілий вміст. Тому, як не важлива перевірка, у багатьох випадках потрібно довіряти не тільки ній, а й здоровому глузду.

Режими браузера

Коли компанії почали створювати браузери, сумісні зі стандартами, перед ними виникло завдання забезпечення зворотної сумісності. Для її вирішення виробники браузерів застосували два режими виводу: стандартний (standards) і нестандартний (quirks). У стандартному режимі браузер виводить сторінку у повній відповідності зі специфікаціями, а в нестандартному - менш суворими способами, що забезпечують зворотну сумісність. У нестандартному режимі, зазвичай, емулюється поведінка застарілих браузерів, що дозволяє надавати відвідувачеві застарілі сайти.

Найбільш очевидна відмінність між стандартним і нестандартним режимами полягає у засобах виведення елементів патентованої моделі контейнерів Windows браузерами Internet Explorer. Коли IE 6 з'явився на ринку, у ньому було введено використання правильної моделі контейнерів в стандартному режимі, а застарілих моделей контейнерів - в нестандартному. Для забезпечення зворотної сумісності з сайтами, створеними для IE 5 і більше низьких версій, в браузерах Орега 7 і вище теж застосовується вивід контейнерів застарілих моделей IE в нестандартному режимі.

Інші, менш помітні відмінності, специфічні для браузерів різних типів. Наприклад, для деяких браузерів символ "#" перед шістнадцятирічним значенням кольору не обов'язковий. В інших браузерах передбачається, що в таблицях CSS безрозмірна довжина вимірюється в пікселях, в третьому розмір шрифту ключових слів збільшується на одиницю і т.д.

Браузери Mozilla і Safari можуть працювати ще в одному, третьому режимі, який називається "майже стандартний". Від стандартного він відрізняється лише деякими малозначними правилами обробки таблиць.

Перемикання типу документа

Браузер вибирає режим виведення залежно від того, чи приведено в документі оголошення DOCTYPE. Якщо оголошення приведено, режим вибирається на основі заданої схеми DTD. Якщо документ XHTML містить повне оголошення DOCTYPE, то браузер виведе сторінку в стандартному режимі. Якщо оголошення DOCTYPE документа HTML 4.01 містить строгу (strict) схему DTD, сторінка буде виведена теж у стандартному режимі. Оголошення DOCTYPE, що містить перехідну (transitional) схему DTD та адресу URI, задає вивід в стандартному режимі. Якщо ж оголошення DOCTYPE містить перехідну схему DTD і не містить адресу URI, сторінка буде виведена в нестандартному режимі. Якщо документ HTML або XHTML погано сформований або не містить оголошення DOCTYPE, він буде виведений також в нестандартному режимі.

Ефект вибору режиму виводу на основі наявності оголошення DOCTYPE називається "перемиканням типу документа". Наведених вище правил дотримуються не всі браузери. Ці правила дають лише загальне уявлення про те, як виконується перемикання типу документа.

Перемикання типу документа використовується браузерами для настройки режиму виведення залежно від того, який документ виводиться: застарілий або більше новий, узгоджуваний з останніми стандартами. Однак навіть при дійсній таблиці css неправильне оголошення DOCTYPE призведе до того, що сторінка буде виведена в нестандартному режимі і буде вести себе непередбачувано. Тому при використанні HTML важливо додати повністю сформоване оголошення DOCTYPE на кожну сторінку сайту і застосувати строгу схему DTD. Нижче наведені приклади повністю сформованих оголошень DOCTYPE.
<!DOCTYPE HTML PUBLIC "-//WЗС//DТD HTML4.01//EN" "httр://www.wЗ.оrg/ТR/htm14/striсt.dtd">
<!DОСТУРЕ html PUBLIC "-//WЗС//DTD XHTML1.О Transitional//EN" "httр //www.wЗ.оrg/ТR/хhtml1/DТD/хhtml1-trаnsitiопаl.dtd">
<!DОСТУРЕ html PUBLIC "-//WЗС//DТD XHTML 1.0 Strict//EN" "httр://www.wЗ.оrg/ТR/хhtml1/DТD/хhtml1-striсt.dtd">

Багато редакторів HTML додають оголошення DOCTYPE на сторінку автоматично. При створенні документа XHTML редактор може також додати оголошення XML перед оголошенням DOCTYPE. Нижче наведено приклад оголошення XML.
<?xml version="1.0" encoding="utf-8"?>

Оголошення XML - необов'язковий компонент файлу XML. Воно визначає використовувану версію XML і формат кодування символів. На жаль, якщо оголошення DOCTYPE не є першим елементом сторінки, браузер IE 6 автоматично перемикається в нестандартний режим. Отже, якщо сторінка повинна оброблятися як документ XML, вона не повинна містити оголошення XML.
Залишати коментар дозволено лише зареєстрованим користувачам. Процедура займе зовсім небагато часу, і ви зможете швидко добавити відгук.

Авторизуватися

Вперше на KovelPost? Приєднуйтесь

Топ авторів:

Сусь НаталіяТетянка ГаврилюкKovelPostHalyna TkachukСкок ДмитроНікіта МудринецьРемонт ПКОлександр ФілонВасиль КовальчукСергій