Бесплатные шрифты

 

Статьи и публикации

 

Сервисы

более 200 шрифтованалитикадля веб-кодера

Легенды о прологе и doctype

Качественный xhtml-документ немыслим без указания пролога и типа документа. Не смотря на то, что многие веб-девелоперы игнорируют эти важные элементы, не указанный пролог и doctype могут быть причиной многих несоответствий в рендеринге страницы.

Цель  правильная вёрстка страниц
Технология  W3C XHTML 1.0
Поддержка  Все актуальные браузеры
Баги  о них и поговорим :)

Как я уже сказал, неверное указание самых главных элементов (x)html-вёрстки может привести к ошибкам при отображении страниц в разных браузерах. Рассмотрим рекомендацию W3Consortium по написанию «шапки» кода страницы:


<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
   …

Итак, в первой строке мы указываем принадлежность к документа к XML версии 1.0 и указываем кодировку, в нашем случае — windows-1251.

Во второй объявляем тип документа — в XHTML 1.0 их три: Strict, Transitional и Frameset, у нас указан Transitional; и адрес к интерпретатору (для браузера, если он не знает).

Третья строка объявляет html-маркировку и ссылку для браузера (опять же, если он раньше ничего не слыхал). Дальше идёт сам документ.

Я бы хотел обратить внимание веб-девелоперов на очередной глюк IE6 — при вёрстке XHTML 1.0 Transitional нельзя указывать пролог <?xml version="1.0" encoding="windows-1251"?>, так как он приводит к многочисленным ошибкам при рендеринге страницы. Происходит это потому, что браузер отображает страницу не по стандарту W3C, а в режиме несоответствия стандартам (quirks-mode). Спасает лишь то, что в типе Transitional пролог не является обязательным и его можно не указывать.

Стоит отметить, что браузеры Opera и Mozilla рендерят страницу без ошибок в любых случаях, с прологом или без него.

В таблице отображена зависимость режимов рендеринга в Internet Explorer от указания DOCTYPE (quirks – режим несоответствия стандартам, standart – обычный режим).

Варианты использовании DOCTYPEWin IE5Win IE6Mac IE6
HTML 4.01 Transitional без doctypequirksquirksquirks
HTML 4.01 Transitional без url в doctypequirksquirksquirks
HTML 4.01 Transitional полный doctypestandartstandartstandart
XHTML 1.0 Transitional без doctypequirksquirksstandart
XHTML 1.0 Transitional без url в doctypequirksquirksstandart
XHTML 1.0 Transitional без прологаstandartquirksstandart
XHTML 1.0 Transitional без пролога и urlstandartstandartstandart

Таким образом, можно сделать вывод, что указание DOCTYPE являстся обязательным при вёрстке (X)HTML-страниц, в то время как пролог можно (и нужно) опустить.

 

Код, 27/07/06Wart!X