Если вы работаете в разработке, особенно в Интернете, вы наверняка видели элемент Doctype в HTML. Итак, знаете ли вы, что такое Doctype HTML и как его использовать?
В этой статье мы поймем определение HTML Doctype и как его использовать.
Что такое HTML Doctype?
Несмотря на похожий синтаксис, Doctype не считается тегом HTML.
HTML-элемент Doctype можно определить как объявление, которое сообщает браузеру, какая версия HTML используется в файле.
Это объявление идет перед тегами HTML. Это объявление идет перед тегами HTML. Следовательно, он должен быть объявлен в первой строке HTML-кода.
До версии 4 HTML был основан на SGML. Следовательно, объявление Doctype было сделано в режиме DTD (Document Type Declaration).
Начиная с версии 5, HTML больше не основан на SGML и, таким образом, упростил даже декларацию типа документа.
В HTML5, новейшей версии HTML, необязательно объявлять конкретную версию. Итак, вы можете легко объявить Doctype. Чтобы понять это, вы можете увидеть в примере ниже объявление HTML5 Doctype. Вы можете заметить, что похоже, версия не объявлена.
<! DOCTYPE html> <html> <! - HTML-код -> </html>
Все текущие браузеры поддерживают новейшую версию HTML. Однако все еще существуют страничные документы, основанные на предыдущих версиях HTML, которые вы можете найти в Интернете. Итак, давайте познакомимся с некоторыми из них с помощью элемента doctype.
Как объявить Doctype в HTML?
Как объяснялось ранее, тип документа должен быть объявлен перед тегами HTML. Вы должны сделать это объявление в первой строке кода.
Во всех версиях HTML и XHTML способ объявления вам типа документа был изменен после HTML5. Раньше вам нужно было написать очень длинную строку кода. В настоящее время с версией 5 вы можете делать это просто, используя всего 2 «слова».
В объявлении doctype регистр не учитывается. То есть не отличается от прописных букв к строчным. Поэтому вы можете писать, как вам удобнее. В приведенных ниже примерах вы можете увидеть несколько возможных способов объявления Doctype в новом формате HTML5.
<! DOCTYPE HTML> или <! DOCTYPE html> или <! doctype html> или <! doctype HTML> ...
В следующих разделах вы можете узнать о некоторых вариантах этого оператора в других версиях HTML и XHTML.
Doctype в HTML5
В новой версии HTML, HTML5, объявление doctype было упрощено. Просто объявите как <! DOCTYPE html> :
<! DOCTYPE html>
Doctype в HTML 4.0.1
Если вам нужно использовать старую версию HTML, важно знать операторы doctype. В HTML версии 4.0.1 вы должны знать три разных способа объявления doctype.
В HTML 4.01 объявление типа документа HTML относится к DTD (объявление типа документа), поскольку оно было основано на SGML. DTD определяет правила для языков разметки, чтобы браузеры правильно отображали контент.
HTML 4.01 Строгий
Этот DTD содержит все элементы и атрибуты HTML, но не включает элементы представления или является устаревшим. В этом случае вы также не можете использовать наборы фреймов. Для этой формы вы можете объявить в соответствии с приведенным ниже кодом:
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
HTML 4.01 переходный
Этот DTD содержит все элементы и атрибуты HTML, включая элементы представления и устаревшие элементы. Однако, как и Strict, нельзя использовать наборы фреймов. Для этой формы вы можете объявить в соответствии с приведенным ниже кодом
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
HTML 4.01 Набор фреймов
Этот DTD обладает всеми функциональными возможностями HTML 4.01 Transitional, однако это единственное, где вы можете использовать наборы фреймов. Для этой формы вы можете объявить в соответствии с приведенным ниже кодом:
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
Doctype в XHTML
XHTML 1.0 Strict
Этот DTD содержит все элементы и атрибуты HTML, но не включает элементы представления или является устаревшим. Однако вы не можете использовать наборы фреймов. Разметка также должна быть написана как правильно сформированный XML. Для этой формы вы можете объявить, как в приведенном ниже коде:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
XHTML 1.0 Transitional
Этот DTD содержит все элементы и атрибуты HTML, в отличие от документа Strict, он также содержит элементы представления и устаревшие элементы. Однако и здесь нельзя использовать наборы фреймов. Разметка также должна быть написана как правильно сформированный XML. Для этой формы вы можете объявить, как в приведенном ниже коде:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
XHTML 1.0 Frameset
Этот DTD такой же, как XHTML 1.0 Transitional, однако этот формат позволяет использовать набор фреймов. Для этой формы вы можете объявить, как в приведенном ниже коде:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XHTML 1.1
Этот DTD такое же, как XHTML 1.0 Strict, с небольшой разницей. В XHTML 1.1 вы можете добавлять модули. Для этой формы вы можете объявить, как в приведенном ниже коде
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
Обязательно ли использование Doctype?
По сути, мы можем сказать, что документ HTML состоит из тегов HTML. Мы уже знаем, что начиная с версии HTML5 DTD не является обязательным требованием. Таким образом, из HTML5, даже если вы забудете объявить Doctype, документ будет прочитан правильно. Таким образом, можно сказать, что использование Doctype больше не является обязательным.
Однако наличие DTD гарантирует, что браузер будет вести себя правильно и точно. Когда мы не информируем Doctype HTML, браузер использует функцию, называемую « режимом совместимости ». В этом режиме браузер может выбрать шаблон, которому нужно следовать. Когда объявление сделано, браузер переходит в стандартный режим. Таким образом, браузер будет следовать всем спецификациям HTML и CSS соответственно.
Кроме того, отсутствие Doctype HTML, а также режим причуд браузера могут привести к уязвимостям. Отсутствие этого объявления даже в новых браузерах делает страницы уязвимыми для таких атак, как RPO (перезапись относительного пути), которая действует при внедрении таблиц стилей.
Следовательно, мы не должны утверждать, что doctype не является обязательным. W3C сам руководит его использованием. Следовательно, использование Doctype HTML необходимо для любого документа. Следовательно, его использование является обязательным с учетом передовой практики, а также для гарантии безупречного функционирования и безопасности документа.
Doctype для почтовых клиентов
Несмотря на большие успехи, достигнутые в последнее время, разработка для электронной почты не развивалась так же, как разработка для Интернета. Таким образом, до сих пор нет стандарта для HTML в электронных письмах.
Хотя в большинстве самых современных и популярных почтовых клиентов уже есть стандарт HTML5, его использование не всегда является хорошим выбором. Это связано с тем, что некоторые почтовые клиенты все еще испытывают трудности с обработкой этой версии.
Согласно статье Campaign Monitor (опубликованной в ноябре 2010 г., обновленной в мае 2019 г.), наиболее подходящим методом для использования в электронных письмах является использование версии для XHTML 1.0 Transitional, а именно:
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Поэтому при отправке электронного письма важно определить свою цель и хорошо знать ее получателей. Вы также можете проверить, какую версию Doctype HTML поддерживает почтовый клиент, с помощью теста почтового клиента.
Будущее Doctype в HTML
Как вы видели ранее, хотя это выглядит как простой ресурс, очень важно понимать важность объявления Doctype HTML. Таким образом, вы сможете избежать проблем в документе, а также помочь исправить ошибки и сделать его максимально безопасным и современным!
Разговоры о будущем doctype в следующих версиях HTML могут показаться неизвестными. Но на самом деле все просто. Мы знаем, что HTML5 больше не основан на SGML, поэтому doctype больше не является DTD, сообщающим о конкретной версии HTML. С тех пор вы можете использовать doctype только для информирования браузера о том, что документ находится в HTML. На основе этой информации браузер может обрабатывать документ и управлять им для самой последней версии HTML.
Таким образом, мы можем сделать вывод, что все следующие версии HTML сохранят объявление так же, как они работают в HTML5: <! DOCTYPE html>.