HTML — универсальный язык публикации гипертекста во Всемирной паутине [1]. С 1982 года, когда Тим Бернерс-Ли упростил SGML, чтобы установить исходное определение HTML, до выпуска спецификации XHTML1.1 в 2001 году, HTML стал международным стандартом с множеством версий [2]. Каждая версия спецификации определена на машиночитаемом языке, который описывает юридическую структуру, элементы и атрибуты. Это определение типа документа (DTD).
DTD описывает объявление типа документа (объявление DTD, называемое doctype[3]), расположенное в начале HTML-документа. Это связь между документом и инструкцией DTD. Например, тип документа HTML4.01 Strict:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" " http://www.w3.org/TR/html4/strict.dtd ">
Он указывает версию HTML, используемую в документе, что является наиболее важной информацией, необходимой таким инструментам, как браузеры, при анализе документа. Например, инструменты проверки W3C могут использовать его для проверки синтаксиса и указания ошибок.
Неправильная реализация стандартов в ранних браузерах, распространение частных расширений и путаница в самих ранних стандартах для прямой совместимости привели к тому, что в документах того времени не было ни типов документов, ни прямых ссылок на DTD, что также затрудняло внедрение новых стандартов. . получили признание и популярность, потому что браузеры не могли отличить их друг от друга. Чтобы иметь дело с веб-страницами, созданными в соответствии с веб-стандартами, и веб-страницами, созданными в соответствии со старыми практиками, Тодд Фарнер в 1998 году предложил метод «придумал переключатель» [4], который позволяет браузеру предоставлять два набора режимов рендеринга. : то есть с полным типом документа. Документы анализируются по стандартам W3C, в противном случае они анализируются по-старому.
Этот метод практичен, прост и эффективен. Два года спустя он был впервые использован в версии IE для Mac, и вскоре его переняли другие производители браузеров. Это породило анализ типов документов (анализ типов документов или переключение типов документов). Браузер использует его, чтобы решить, должен ли его движок использовать стандартный режим, квазистандартный режим или режим совместимости, что окажет большое влияние на анализ HTML и CSS, макет CSS и сценарии JavaScript [5]. Нет сомнений в том, что нам следует максимально использовать стандартную модель.
Хотя HTML5 все еще находится в стадии разработки, новейшие браузеры Firefox3.5, Chrome2, Safari4 и IE8 начали поддерживать некоторые функции. В частности, выпуск Google Wave вызвал новый всплеск продвижения практики HTML5. HTML5 не основан на SGML и не имеет DTD, но в целях прямой совместимости он принимает факт анализа типа документа и определяет, что тип документа является единственным оператором преобразования режима в text/html и не имеет другого применения. Его тип документа очень краток: <!doctype html>[6].
Стоит отметить, что IE8 использует оператор X-UA-Compatible [7] для решения проблемы прямой совместимости. В результате режим рендеринга браузера в IE8 зависит не только от анализа типа документа, но и от оператора X-UA-Compatible. Это не только усложняет оценку шаблона [8], но и нарушает идею прогрессивного улучшения веб-дизайна [9].
На пути к веб-стандартам нам нужна не только прямая совместимость, полная реализма, но и полная идеализма обратная совместимость. Это надежда на то, что наша сеть сможет работать правильно в будущем. В соответствии с идеями стандартов, простоты и постепенного улучшения, лучшим решением для нашей страницы сейчас может быть:
<!doctype html> … <meta http-equiv="X-UA-Compatible" content="IE=Edge"> …
Примечание:
[1] HTML — это лингва франка для публикации гипертекста в мире.
Широкая сеть
[2] http://zh.wikipedia.org/wiki/Html
[3] В предыдущих спецификациях декларацию DTD часто называли декларацией типа документа.
Легко спутать с DTD.
[4] http://web.archive.org/web/20030212115103/http://www.geocrawler.
com/archives/list-name.mbox/123/1998/7/0/1037920/
[5]Активируйте режим браузера с помощью doctype
[6] http://www.w3.org/TR/html5/syntax.html#the-doctype
[7] Помимо типов документов, веб-стандартизация обеспечивает совместимость с IE8.
[8] http://dancewithnet.com/2009/06/14/activating-browser-modes
-with-doctype/#ie8modes
[9] Зависит ли будущее веб-стандартов от технологии браузеров?
Исходный текст: http://ued.koubei.com/?p=928.