Вы сделали все, что считали правильным, но страница ведет себя некорректно в последних версиях браузеров. Это потому, что вы написали неверные XHTML и CSS. Вы использовали стандартную объектную модель документа (DOM) W3C для управления динамическими элементами на странице. И когда браузеры пытаются реализовать эти стандарты, ваш сайт терпит неудачу. Скорее всего, это вызвано неправильным типом документа (DOCTYPE). Цель этой статьи — рассказать вам, как работает DOCTYPE, и объяснить реальное использование этих типов документов.
Почему ДОКТИП?
Согласно стандартам HTML и XHTML, DOCTYPE (сокращение от «объявление типа документа») используется, чтобы сообщить браузеру, какую версию (x)HTML вы используете, и должен появляться вверху каждой страницы. DOCTYPE — важный компонент веб-страниц: без них ваш CSS перестанет быть действительным.
Как упоминалось в статье ALA, упомянутой ранее (а также в других интересных моментах), DOCTYPE также необходимо адаптировать для других браузеров, таких как Mozilla, IE5/Mac или IE6 или IE7.
Новый DOCTYPE содержит полный URI (примечание sconf: Universal Resource Identifier, Universal Resource Identifier) (полный URL-адрес), который сообщает браузерам о необходимости синтаксического анализа (рендеринга) страницы в модель, совместимую со стандартом. Обработайте (X)HTML, CSS и DOM так, как вы ожидаете.
Использование неполного или старого DOCTYPE или даже отсутствия DOCTYPE вообще приведет к тому, что браузер преобразует его в модель «Причуды», где браузер предполагает, что вы пишете устаревший, неработающий код, созданный после 90-х годов.
При этом параметре браузер попытается проанализировать вашу страницу, используя старый стандарт, и преобразовать ваш CSS в стандарт IE4. И отвечает владельцу специальным DOM (IE отвечает на DOM IE, а Mozilla и Netscape 6 отвечают на модель, которую они считают).
Несомненно, это не то, чего вы хотите. Но это то, что вы получаете часто. В этой статье мы хотим исправить эти неправильные или неполные DOCTYPE.
(Примечание. Браузер Opera не поддерживает эти правила. Он всегда пытается преобразовать веб-страницы в адаптированные к стандартам. С другой стороны, Opera не обеспечивает полноценной поддержки DOM W3C. Но они также могут работать хорошо.) Эд: Поскольку это статья была впервые опубликована, Opera добавила в Opera 7 функциональность, совместимую с DOM.
Куда пропал DOCTYPE? (КУДА ПРОПАЛИ ВСЕ ДОКТИПЫ?)
Хотя типы документов являются важной неотъемлемой частью WEB-стандартов в браузерах, и хотя W3C возглавляет создание WEB-стандартов, вы также ожидаете, что сайты W3C могут предоставлять некоторые подходящие типы документов, и вы также можете захотеть найти эту информацию быстрее и проще. , однако, как я это пишу, еще нельзя. {Ред: W3C теперь перечисляет на своем веб-сайте ряд стандартных DOCTYPE. Вы можете увидеть их в рекомендациях W3C, например: «Мой веб-сайт является стандартным. А ваш?»}
W3.org не является List Apart, WebReference или Webmonkey. Первоначально он не был предназначен для того, чтобы помочь веб-дизайнерам, разработчикам и организациям гражданского общества ускорить понимание и использование новейших технологий. Это не его работа.
W3C публикует ряд рекомендаций, хотя большинство веб-дизайнеров о них не знают. #
Вы можете целый день искать DOCTYPE на W3.org, не заглядывая в специальные списки. А когда вы загружаете DOCTYPE (обычно связанный с каким-то конкретным предложением или рабочим проектом), он не работает должным образом на вашем сайте.
На сайте W3C есть DOCTYPE с отсутствующими URI (примечание sconf: не полные URI), которые указывают на собственный веб-сайт W3C. Как только они будут перенесены из W3C на ваши собственные веб-страницы, эти URL-адреса станут несуществующими документами.
Например, DOCTYPE многих сайтов напрямую скопирован с W3.org:
Ниже приводится цитируемое содержание: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
Если вы увидите последнюю часть этого DOCTYPE («DTD/xhtml1-strict.dtd»), вы обнаружите, что это относительная ссылка на сайт W3C. Это сайт W3C, а не ваш. Таким образом, этот URI не влияет на браузер. (примечание sconf: когда вы посещаете W3.org, это работает только потому, что это относительная ссылка).
Этот DOCTYPE на самом деле следует изменить на:
Ниже приводится цитируемое содержание: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" |
Обратите внимание, что DOCTYPE содержит полный URI. При этом отображается действительный ресурс в сети, чтобы браузер мог найти его и преобразовать документ в форму, соответствующую стандартам.
КАК ИСПОЛЬЗОВАТЬ DOCTYPE (ДОКТИПЫ, КОТОРЫЕ РАБОТАЮТ)
Итак, как использовать DOCTYPE? Рад, что вы спросили. Полный DOCTYPE ниже — это все, что нам нужно:
HTML 4.01 строгий, переходный, рамочный
Ниже приводится цитируемое содержание: <!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 строгий, переходный, фреймворк
Ниже приводится цитируемое содержание: <!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 "> |
XHTML1.1 ОТД
Ниже приводится цитируемое содержание: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" |