HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#База знаний</a></p>
1 <p><a>#База знаний</a></p>
2 <ul><li>28 апр 2025</li>
2 <ul><li>28 апр 2025</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Рассказываем, что такое &lt; !DOCTYPE &gt; и как правильно его использовать.</p>
4 </ul><p>Рассказываем, что такое &lt; !DOCTYPE &gt; и как правильно его использовать.</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
6 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
7 <p>При создании HTML-документов нужно учитывать, как браузер интерпретирует и отображает нашу страницу. Важно, чтобы сайт выглядел так, как он задумывался, работал предсказуемо и отображался корректно.</p>
7 <p>При создании HTML-документов нужно учитывать, как браузер интерпретирует и отображает нашу страницу. Важно, чтобы сайт выглядел так, как он задумывался, работал предсказуемо и отображался корректно.</p>
8 <p>Первое, что видит браузер при разборе HTML, - это &lt;!DOCTYPE&gt;. От этого элемента зависит, как страница будет рендериться: в современном стандартном режиме или в режиме совместимости. Разбираемся, как работает &lt;!DOCTYPE&gt;, почему без него вёрстка может сломаться и как выбрать правильный вариант.</p>
8 <p>Первое, что видит браузер при разборе HTML, - это &lt;!DOCTYPE&gt;. От этого элемента зависит, как страница будет рендериться: в современном стандартном режиме или в режиме совместимости. Разбираемся, как работает &lt;!DOCTYPE&gt;, почему без него вёрстка может сломаться и как выбрать правильный вариант.</p>
9 <p><strong>Содержание</strong></p>
9 <p><strong>Содержание</strong></p>
10 <ul><li><a>Что такое &lt;!DOCTYPE&gt;</a></li>
10 <ul><li><a>Что такое &lt;!DOCTYPE&gt;</a></li>
11 <li><a>Как пишется</a>директива</li>
11 <li><a>Как пишется</a>директива</li>
12 <li><a>Обязательно ли её использовать</a></li>
12 <li><a>Обязательно ли её использовать</a></li>
13 <li><a>Где &lt;!DOCTYPE&gt; располагается на странице</a></li>
13 <li><a>Где &lt;!DOCTYPE&gt; располагается на странице</a></li>
14 <li>Какие бывают<a>режимы отображения документа</a></li>
14 <li>Какие бывают<a>режимы отображения документа</a></li>
15 <li><a>Какие существуют версии</a>в разных стандартах HTML</li>
15 <li><a>Какие существуют версии</a>в разных стандартах HTML</li>
16 <li><a>Частые ошибки</a></li>
16 <li><a>Частые ошибки</a></li>
17 <li><a>Полезные советы и лайфхаки</a></li>
17 <li><a>Полезные советы и лайфхаки</a></li>
18 </ul><p>&lt;!DOCTYPE&gt; (document type declaration) - дословно "Тип документа" - это инструкция для веб-браузеров, определяющая, какую версию HTML следует использовать при работе с документом.</p>
18 </ul><p>&lt;!DOCTYPE&gt; (document type declaration) - дословно "Тип документа" - это инструкция для веб-браузеров, определяющая, какую версию HTML следует использовать при работе с документом.</p>
19 <p>Строго говоря, &lt;!DOCTYPE&gt; - это не тег, а директива, которая относится к метаинформации о документе. Она записана в угловых скобках, потому что HTML-страница обрабатывает только то, что внутри &lt; &gt;. А знак ! в начале подчёркивает: это не обычный тег, а специальная инструкция для браузера.</p>
19 <p>Строго говоря, &lt;!DOCTYPE&gt; - это не тег, а директива, которая относится к метаинформации о документе. Она записана в угловых скобках, потому что HTML-страница обрабатывает только то, что внутри &lt; &gt;. А знак ! в начале подчёркивает: это не обычный тег, а специальная инструкция для браузера.</p>
20 <p>В современных спецификациях HTML5 &lt;!DOCTYPE&gt; записывается в краткой простой форме:</p>
20 <p>В современных спецификациях HTML5 &lt;!DOCTYPE&gt; записывается в краткой простой форме:</p>
21 &lt;!DOCTYPE html&gt;<p>При этом регистр букв внутри DOCTYPE не имеет значения. Можно прописать и так:</p>
21 &lt;!DOCTYPE html&gt;<p>При этом регистр букв внутри DOCTYPE не имеет значения. Можно прописать и так:</p>
22 <ul><li>&lt;!DOCTYPE HTML&gt;;</li>
22 <ul><li>&lt;!DOCTYPE HTML&gt;;</li>
23 <li>&lt;!doctype html&gt;;</li>
23 <li>&lt;!doctype html&gt;;</li>
24 <li>&lt;!doctype HTML&gt;.</li>
24 <li>&lt;!doctype HTML&gt;.</li>
25 </ul><p>Если вы воспользуетесь плагином создания разметки Emmet, то он предложит этот вариант:</p>
25 </ul><p>Если вы воспользуетесь плагином создания разметки Emmet, то он предложит этот вариант:</p>
26 <p>&lt;!DOCTYPE html&gt;</p>
26 <p>&lt;!DOCTYPE html&gt;</p>
27 <p>А вот в предыдущих версиях HTML и XHTML использовались более сложные и длинные записи &lt;!DOCTYPE&gt;. Они указывали на конкретное определение типа документа - DTD (document type definition) - и режима работы. И выглядело это всё как инструкция для принтера:</p>
27 <p>А вот в предыдущих версиях HTML и XHTML использовались более сложные и длинные записи &lt;!DOCTYPE&gt;. Они указывали на конкретное определение типа документа - DTD (document type definition) - и режима работы. И выглядело это всё как инструкция для принтера:</p>
28 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;<p>Коротко: да. Если его не указать, браузер включит режим совместимости (quirks mode), и это может привести:</p>
28 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;<p>Коротко: да. Если его не указать, браузер включит режим совместимости (quirks mode), и это может привести:</p>
29 <ul><li>к различному поведению браузеров при рендеринге;</li>
29 <ul><li>к различному поведению браузеров при рендеринге;</li>
30 <li>ошибкам в обработке CSS;</li>
30 <li>ошибкам в обработке CSS;</li>
31 <li>непредсказуемому расположению элементов на странице.</li>
31 <li>непредсказуемому расположению элементов на странице.</li>
32 </ul><p>При вёрстке &lt;!DOCTYPE&gt; всегда помещают в самое начало HTML-документа, первой строкой. В любом другом месте этот элемент не будет восприниматься браузером, и для страницы включится режим совместимости.</p>
32 </ul><p>При вёрстке &lt;!DOCTYPE&gt; всегда помещают в самое начало HTML-документа, первой строкой. В любом другом месте этот элемент не будет восприниматься браузером, и для страницы включится режим совместимости.</p>
33 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Пример&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Заголовок&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>Стоит ошибиться в &lt;!DOCTYPE&gt;, и браузер решит, что вы застряли в 2001-м. Это и есть режим совместимости. Давайте разберёмся, какие ещё режимы отображения бывают и чем они различаются.</p>
33 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Пример&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Заголовок&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>Стоит ошибиться в &lt;!DOCTYPE&gt;, и браузер решит, что вы застряли в 2001-м. Это и есть режим совместимости. Давайте разберёмся, какие ещё режимы отображения бывают и чем они различаются.</p>
34 <p>Итак, браузер знает три режима отображения документа.</p>
34 <p>Итак, браузер знает три режима отображения документа.</p>
35 <p>Включается при корректном указании директивы и заставляет браузер следовать современным стандартам.</p>
35 <p>Включается при корректном указании директивы и заставляет браузер следовать современным стандартам.</p>
36 <p>Как включить:</p>
36 <p>Как включить:</p>
37 <p>Используйте правильный &lt;!DOCTYPE&gt; в начале HTML-документа:</p>
37 <p>Используйте правильный &lt;!DOCTYPE&gt; в начале HTML-документа:</p>
38 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Стандартный режим&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Пример в стандартном режиме&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>Так браузер поймёт, что эта страница создана по актуальному стандарту HTML5, и будет применять к коду именно эту спецификацию, корректно отображая HTML и CSS.</p>
38 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Стандартный режим&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Пример в стандартном режиме&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>Так браузер поймёт, что эта страница создана по актуальному стандарту HTML5, и будет применять к коду именно эту спецификацию, корректно отображая HTML и CSS.</p>
39 <p>Этот режим имитирует поведение старых браузеров (IE5 и других), в которых не работают некоторые современные решения. Это может привести к неправильному рендерингу CSS, особенно у элементов с блочной моделью (box model).</p>
39 <p>Этот режим имитирует поведение старых браузеров (IE5 и других), в которых не работают некоторые современные решения. Это может привести к неправильному рендерингу CSS, особенно у элементов с блочной моделью (box model).</p>
40 <p>Это не значит, что страница будет полностью сломана, но результат отображения некоторых элементов будет отличаться от ожидаемого.</p>
40 <p>Это не значит, что страница будет полностью сломана, но результат отображения некоторых элементов будет отличаться от ожидаемого.</p>
41 <p>Как включить:</p>
41 <p>Как включить:</p>
42 <ul><li><strong>Не писать.</strong>Если нет &lt;!DOCTYPE&gt;, браузер включит режим совместимости.</li>
42 <ul><li><strong>Не писать.</strong>Если нет &lt;!DOCTYPE&gt;, браузер включит режим совместимости.</li>
43 </ul>&lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Quirks Mode&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Пример в режиме совместимости, потому что нет DOCTYPE&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<ul><li><strong>Использовать старый или некорректный</strong><strong>&lt;!DOCTYPE&gt;</strong> - например, старые DTD, не указанные полностью:</li>
43 </ul>&lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Quirks Mode&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Пример в режиме совместимости, потому что нет DOCTYPE&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<ul><li><strong>Использовать старый или некорректный</strong><strong>&lt;!DOCTYPE&gt;</strong> - например, старые DTD, не указанные полностью:</li>
44 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"&gt;<ul><li><strong>Добавить что-то перед</strong><strong>&lt;!DOCTYPE&gt;</strong><strong>.</strong>Даже пробел или комментарий перед &lt;!DOCTYPE&gt; могут включить quirks mode:</li>
44 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"&gt;<ul><li><strong>Добавить что-то перед</strong><strong>&lt;!DOCTYPE&gt;</strong><strong>.</strong>Даже пробел или комментарий перед &lt;!DOCTYPE&gt; могут включить quirks mode:</li>
45 </ul>&lt;!-- Этот комментарий вызовет quirks mode --&gt; &lt;!DOCTYPE html&gt;<p>Отличается от стандартного режима небольшими отклонениями в рендеринге, но поддерживает устаревшие элементы.</p>
45 </ul>&lt;!-- Этот комментарий вызовет quirks mode --&gt; &lt;!DOCTYPE html&gt;<p>Отличается от стандартного режима небольшими отклонениями в рендеринге, но поддерживает устаревшие элементы.</p>
46 <p>Как включить:</p>
46 <p>Как включить:</p>
47 <p>Некоторые варианты &lt;!DOCTYPE&gt; из HTML 4.01 Transitional и XHTML 1.0 Transitional могут активировать этот режим. Например:</p>
47 <p>Некоторые варианты &lt;!DOCTYPE&gt; из HTML 4.01 Transitional и XHTML 1.0 Transitional могут активировать этот режим. Например:</p>
48 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Почти стандартный режим&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Пример в почти стандартном режиме&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>В HTML 4.01 существует три варианта &lt;!DOCTYPE&gt;.</p>
48 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Почти стандартный режим&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Пример в почти стандартном режиме&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>В HTML 4.01 существует три варианта &lt;!DOCTYPE&gt;.</p>
49 <ul><li><strong>Strict (строгий режим)</strong> - без поддержки устаревших элементов предыдущих версий:</li>
49 <ul><li><strong>Strict (строгий режим)</strong> - без поддержки устаревших элементов предыдущих версий:</li>
50 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;<ul><li><strong>Transitional (промежуточный режим)</strong> - поддерживает устаревшие теги, такие как &lt;font&gt;:</li>
50 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;<ul><li><strong>Transitional (промежуточный режим)</strong> - поддерживает устаревшие теги, такие как &lt;font&gt;:</li>
51 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;<ul><li><strong>Frameset (режим фреймов)</strong> - поддерживает фреймы:</li>
51 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;<ul><li><strong>Frameset (режим фреймов)</strong> - поддерживает фреймы:</li>
52 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt;<p>XHTML требовал строгого соблюдения синтаксиса XML и имел три аналогичных варианта &lt;!DOCTYPE&gt;:</p>
52 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"&gt;<p>XHTML требовал строгого соблюдения синтаксиса XML и имел три аналогичных варианта &lt;!DOCTYPE&gt;:</p>
53 <ul><li>Strict (строгий режим);</li>
53 <ul><li>Strict (строгий режим);</li>
54 <li>Transitional (промежуточный режим);</li>
54 <li>Transitional (промежуточный режим);</li>
55 <li>Frameset (режим фреймов).</li>
55 <li>Frameset (режим фреймов).</li>
56 </ul><p>Запись &lt;!DOCTYPE&gt; в XHTML 1.0 выглядела так:</p>
56 </ul><p>Запись &lt;!DOCTYPE&gt; в XHTML 1.0 выглядела так:</p>
57 &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;<p>HTML5 не поддерживает устаревшие теги из предыдущих версий и придерживается современной модели вёрстки. Вместо длинных &lt;!DOCTYPE&gt; используется один короткий универсальный вариант, который работает во всех браузерах:</p>
57 &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;<p>HTML5 не поддерживает устаревшие теги из предыдущих версий и придерживается современной модели вёрстки. Вместо длинных &lt;!DOCTYPE&gt; используется один короткий универсальный вариант, который работает во всех браузерах:</p>
58 &lt;!DOCTYPE html&gt;<p>Когда веб-разработчики переходили от старых HTML-версий к более структурированным стандартам, но ещё нуждались в обратной совместимости, они включали почти стандартный режим, который позволял:</p>
58 &lt;!DOCTYPE html&gt;<p>Когда веб-разработчики переходили от старых HTML-версий к более структурированным стандартам, но ещё нуждались в обратной совместимости, они включали почти стандартный режим, который позволял:</p>
59 <ul><li>использовать как современные, так и устаревшие HTML-элементы при соблюдении корректной структуры;</li>
59 <ul><li>использовать как современные, так и устаревшие HTML-элементы при соблюдении корректной структуры;</li>
60 <li>стилизовать страницу с использованием встроенных в разметку стилей (style="").</li>
60 <li>стилизовать страницу с использованием встроенных в разметку стилей (style="").</li>
61 </ul><p>И сейчас можно поддерживать страницу, содержащую устаревший код, с помощью стандарта HTML 4.01.</p>
61 </ul><p>И сейчас можно поддерживать страницу, содержащую устаревший код, с помощью стандарта HTML 4.01.</p>
62 <p>Чтобы правильно указать<strong>директиву</strong>, надо разобраться, из чего она вообще состоит. Для этого давайте попробуем расшифровать &lt;!DOCTYPE&gt; почти стандартного режима отображения.</p>
62 <p>Чтобы правильно указать<strong>директиву</strong>, надо разобраться, из чего она вообще состоит. Для этого давайте попробуем расшифровать &lt;!DOCTYPE&gt; почти стандартного режима отображения.</p>
63 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;<p><strong>Решение</strong></p>
63 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt;<p><strong>Решение</strong></p>
64 <ul><li>!DOCTYPE HTML PUBLIC - объявление типа документа, указывающее, что используется публичный DTD.</li>
64 <ul><li>!DOCTYPE HTML PUBLIC - объявление типа документа, указывающее, что используется публичный DTD.</li>
65 <li>-//W3C//DTD HTML 4.01 Transitional//EN - описание стандарта:</li>
65 <li>-//W3C//DTD HTML 4.01 Transitional//EN - описание стандарта:</li>
66 </ul><ul><li>-//W3C// - спецификация разработана W3C (World Wide Web Consortium).</li>
66 </ul><ul><li>-//W3C// - спецификация разработана W3C (World Wide Web Consortium).</li>
67 <li>DTD HTML 4.01 - версия стандарта (HTML 4.01).</li>
67 <li>DTD HTML 4.01 - версия стандарта (HTML 4.01).</li>
68 <li>Transitional - разрешает использование устаревших элементов (например, &lt;font&gt;, &lt;center&gt;, &lt;iframe&gt;).</li>
68 <li>Transitional - разрешает использование устаревших элементов (например, &lt;font&gt;, &lt;center&gt;, &lt;iframe&gt;).</li>
69 <li>//EN - язык документа (английский).</li>
69 <li>//EN - язык документа (английский).</li>
70 </ul><ul><li>"http://www.w3.org/TR/html4/loose.dtd" - ссылка на официальный документ DTD.</li>
70 </ul><ul><li>"http://www.w3.org/TR/html4/loose.dtd" - ссылка на официальный документ DTD.</li>
71 </ul><p>Есть две основных ошибки при использовании &lt;!DOCTYPE&gt;:</p>
71 </ul><p>Есть две основных ошибки при использовании &lt;!DOCTYPE&gt;:</p>
72 <p><strong>1.</strong>Страница должна использовать только HTML5, но директива &lt;!DOCTYPE&gt; отсутствует или указана неправильно.</p>
72 <p><strong>1.</strong>Страница должна использовать только HTML5, но директива &lt;!DOCTYPE&gt; отсутствует или указана неправильно.</p>
73 <p><strong>Проблема:</strong> на странице используется только современный код, но при этом:</p>
73 <p><strong>Проблема:</strong> на странице используется только современный код, но при этом:</p>
74 <ul><li>директива &lt;!DOCTYPE&gt; не указана вовсе;</li>
74 <ul><li>директива &lt;!DOCTYPE&gt; не указана вовсе;</li>
75 <li>содержит синтаксические ошибки;</li>
75 <li>содержит синтаксические ошибки;</li>
76 <li>расположена не в самом начале документа.</li>
76 <li>расположена не в самом начале документа.</li>
77 </ul><p>Из-за этого браузер может переключиться в режим совместимости и отобразить страницу некорректно, игнорируя особенности HTML5.</p>
77 </ul><p>Из-за этого браузер может переключиться в режим совместимости и отобразить страницу некорректно, игнорируя особенности HTML5.</p>
78 <p><strong>Решение:</strong></p>
78 <p><strong>Решение:</strong></p>
79 <ul><li>Сделайте директиву самым первым элементом страницы.</li>
79 <ul><li>Сделайте директиву самым первым элементом страницы.</li>
80 <li>Используйте правильную для HTML5 запись &lt;!DOCTYPE html&gt;.</li>
80 <li>Используйте правильную для HTML5 запись &lt;!DOCTYPE html&gt;.</li>
81 </ul>&lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Страница для HTML5&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;На странице поддерживается только современный код HTML5&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p><strong>2</strong>. Страница использует и современный, и устаревший код, но не задан подходящий режим совместимости.</p>
81 </ul>&lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Страница для HTML5&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;На странице поддерживается только современный код HTML5&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p><strong>2</strong>. Страница использует и современный, и устаревший код, но не задан подходящий режим совместимости.</p>
82 <p><strong>Проблема</strong><strong>:</strong>в коде страницы присутствуют как современные, так и устаревшие элементы (например, теги и атрибуты из HTML4), но директива &lt;!DOCTYPE&gt; не соответствует нужному стандарту (например, используется HTML5 вместо Transitional). В результате браузер может отрисовать страницу в режиме "почти-совместимости".</p>
82 <p><strong>Проблема</strong><strong>:</strong>в коде страницы присутствуют как современные, так и устаревшие элементы (например, теги и атрибуты из HTML4), но директива &lt;!DOCTYPE&gt; не соответствует нужному стандарту (например, используется HTML5 вместо Transitional). В результате браузер может отрисовать страницу в режиме "почти-совместимости".</p>
83 <p><strong>Решение:</strong></p>
83 <p><strong>Решение:</strong></p>
84 <ul><li>Убедитесь, что &lt;!DOCTYPE&gt; стоит первой строкой.</li>
84 <ul><li>Убедитесь, что &lt;!DOCTYPE&gt; стоит первой строкой.</li>
85 <li>Убедитесь, что параметры директивы прописаны полно и верно, выбрана корректная версия стандарта и присутствует параметр Transitional.</li>
85 <li>Убедитесь, что параметры директивы прописаны полно и верно, выбрана корректная версия стандарта и присутствует параметр Transitional.</li>
86 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Страница для почти стандартного режима&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;На странице поддерживается устаревший и современный код&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<ul><li>Используйте Emmet, чтобы быстро создать первоначальную структуру: это позволит не ошибиться в разметке. Emmet создаёт страницу HTML5 и прописывает &lt;!DOCTYPE&gt; актуального формата.В редакторах вроде VS Code можно набрать ! и нажать<strong>Tab </strong>- вы получите готовый шаблон HTML-документа. Он сразу включает &lt;!DOCTYPE&gt;, &lt;html lang="..."&gt;, &lt;meta charset="UTF-8"&gt; и всё, что часто забывают ввести вручную. Это сэкономит время и позволит не ошибиться при выборе директивы.</li>
86 </ul>&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Страница для почти стандартного режима&lt;/title&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;На странице поддерживается устаревший и современный код&lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<ul><li>Используйте Emmet, чтобы быстро создать первоначальную структуру: это позволит не ошибиться в разметке. Emmet создаёт страницу HTML5 и прописывает &lt;!DOCTYPE&gt; актуального формата.В редакторах вроде VS Code можно набрать ! и нажать<strong>Tab </strong>- вы получите готовый шаблон HTML-документа. Он сразу включает &lt;!DOCTYPE&gt;, &lt;html lang="..."&gt;, &lt;meta charset="UTF-8"&gt; и всё, что часто забывают ввести вручную. Это сэкономит время и позволит не ошибиться при выборе директивы.</li>
87 </ul><ul><li>Если вы работаете с современным сайтом, но в коде остались устаревшие элементы, разумно включить почти стандартный режим. Но если такого кода немного, то лучше переписать его по стандарту HTML5. А вот quirks mode тут не рекомендуется: что-то отобразится правильно, а что-то обязательно будет вести себя как попало.</li>
87 </ul><ul><li>Если вы работаете с современным сайтом, но в коде остались устаревшие элементы, разумно включить почти стандартный режим. Но если такого кода немного, то лучше переписать его по стандарту HTML5. А вот quirks mode тут не рекомендуется: что-то отобразится правильно, а что-то обязательно будет вести себя как попало.</li>
88 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
88 </ul><a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>