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>30 июл 2025</li>
2 <ul><li>30 июл 2025</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Разбираемся, как работает "голова" HTML-документа, какие теги в неё можно добавлять и почему от неё зависит всё - от отображения страницы до SEO.</p>
4 </ul><p>Разбираемся, как работает "голова" HTML-документа, какие теги в неё можно добавлять и почему от неё зависит всё - от отображения страницы до SEO.</p>
5 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
5 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
6 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
6 <p>Онлайн-журнал для тех, кто влюблён в код и информационные технологии. Пишем для айтишников и об айтишниках.</p>
7 <p>Тег &lt;head&gt; - это техническая часть HTML-документа, пользователь её не видит, но в ней находятся настройки страницы: заголовок, описание, подключение стилей, скриптов и другие важные параметры.</p>
7 <p>Тег &lt;head&gt; - это техническая часть HTML-документа, пользователь её не видит, но в ней находятся настройки страницы: заголовок, описание, подключение стилей, скриптов и другие важные параметры.</p>
8 <p>Если сравнивать веб-страницу с книгой, то &lt;head&gt; - это всё, что находится на обложке и форзаце: название, аннотация, выходные данные. В этой статье разберём, зачем нужен тег &lt;head&gt;, какие элементы в него входят и как правильно его использовать.</p>
8 <p>Если сравнивать веб-страницу с книгой, то &lt;head&gt; - это всё, что находится на обложке и форзаце: название, аннотация, выходные данные. В этой статье разберём, зачем нужен тег &lt;head&gt;, какие элементы в него входят и как правильно его использовать.</p>
9 <p><strong>Содержание</strong></p>
9 <p><strong>Содержание</strong></p>
10 <ul><li><a>Зачем нужен тег &lt;head&gt;</a></li>
10 <ul><li><a>Зачем нужен тег &lt;head&gt;</a></li>
11 <li><a>Где находится &lt;head&gt; в структуре HTML-документа</a></li>
11 <li><a>Где находится &lt;head&gt; в структуре HTML-документа</a></li>
12 <li><a>Элементы внутри тега &lt;head&gt;</a></li>
12 <li><a>Элементы внутри тега &lt;head&gt;</a></li>
13 <li><a>Как &lt;head&gt; влияет на отображение и поведение страницы</a></li>
13 <li><a>Как &lt;head&gt; влияет на отображение и поведение страницы</a></li>
14 <li><a>Распространённые ошибки при работе с &lt;head&gt;</a></li>
14 <li><a>Распространённые ошибки при работе с &lt;head&gt;</a></li>
15 <li><a>Практика. Создаём первую HTML-страницу с правильным &lt;head&gt;</a></li>
15 <li><a>Практика. Создаём первую HTML-страницу с правильным &lt;head&gt;</a></li>
16 </ul><p>В HTML-документе есть две главные части: &lt;head&gt; и &lt;body&gt;. Всё, что видит пользователь, - текст, картинки, кнопки, - находится внутри &lt;body&gt;. А в &lt;head&gt; - то, что помогает браузеру правильно отобразить эту страницу.</p>
16 </ul><p>В HTML-документе есть две главные части: &lt;head&gt; и &lt;body&gt;. Всё, что видит пользователь, - текст, картинки, кнопки, - находится внутри &lt;body&gt;. А в &lt;head&gt; - то, что помогает браузеру правильно отобразить эту страницу.</p>
17 <p>Тег &lt;head&gt; - это своего рода "настройки" документа. Здесь указывают:</p>
17 <p>Тег &lt;head&gt; - это своего рода "настройки" документа. Здесь указывают:</p>
18 <ul><li>название страницы;</li>
18 <ul><li>название страницы;</li>
19 <li>кодировку;</li>
19 <li>кодировку;</li>
20 <li>подключение CSS-стилей и иконок;</li>
20 <li>подключение CSS-стилей и иконок;</li>
21 <li>описание для поисковых систем;</li>
21 <li>описание для поисковых систем;</li>
22 <li>инструкции для социальных сетей;</li>
22 <li>инструкции для социальных сетей;</li>
23 <li>скрипты, которые должны загрузиться раньше контента.</li>
23 <li>скрипты, которые должны загрузиться раньше контента.</li>
24 </ul><p>Тег &lt;head&gt; начинается сразу под тегом &lt;html&gt; и заканчивается перед тегом &lt;body&gt;. Он описывает настройки страницы и не должен содержать видимый контент - только метаинформацию.</p>
24 </ul><p>Тег &lt;head&gt; начинается сразу под тегом &lt;html&gt; и заканчивается перед тегом &lt;body&gt;. Он описывает настройки страницы и не должен содержать видимый контент - только метаинформацию.</p>
25 <p>Простейшая структура HTML-документа выглядит так:</p>
25 <p>Простейшая структура HTML-документа выглядит так:</p>
26 &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;p&gt;Это первый абзац на странице.&lt;/p&gt; &lt;/body&gt; &lt;/html&gt;<p>Здесь:</p>
26 &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;p&gt;Это первый абзац на странице.&lt;/p&gt; &lt;/body&gt; &lt;/html&gt;<p>Здесь:</p>
27 <ul><li>тег &lt;head&gt; содержит информацию, которая нужна браузеру, - кодировку текста (UTF-8) и заголовок страницы;</li>
27 <ul><li>тег &lt;head&gt; содержит информацию, которая нужна браузеру, - кодировку текста (UTF-8) и заголовок страницы;</li>
28 <li>всё, что видит пользователь, находится внутри &lt;body&gt;.</li>
28 <li>всё, что видит пользователь, находится внутри &lt;body&gt;.</li>
29 </ul><p><strong>Важно:</strong>на странице должен быть только один тег &lt;head&gt;. Его нельзя размещать внутри &lt;body&gt;, дублировать или выносить за пределы &lt;html&gt; - это будет ошибкой.</p>
29 </ul><p><strong>Важно:</strong>на странице должен быть только один тег &lt;head&gt;. Его нельзя размещать внутри &lt;body&gt;, дублировать или выносить за пределы &lt;html&gt; - это будет ошибкой.</p>
30 <p>Тег &lt;head&gt; содержит метаинформацию о документе - то есть данные, которые помогают браузеру, поисковым системам и соцсетям правильно обработать страницу. Вот основные теги, которые чаще всего размещают внутри:</p>
30 <p>Тег &lt;head&gt; содержит метаинформацию о документе - то есть данные, которые помогают браузеру, поисковым системам и соцсетям правильно обработать страницу. Вот основные теги, которые чаще всего размещают внутри:</p>
31 <p>Тег &lt;title&gt; (от "title" - заголовок) задаёт название вкладки в браузере и в результатах поиска. У каждой страницы должен быть свой заголовок. Без тега &lt;title&gt; браузер покажет во вкладке название файла.</p>
31 <p>Тег &lt;title&gt; (от "title" - заголовок) задаёт название вкладки в браузере и в результатах поиска. У каждой страницы должен быть свой заголовок. Без тега &lt;title&gt; браузер покажет во вкладке название файла.</p>
32 &lt;head&gt; &lt;!-- Заголовок страницы --&gt; &lt;title&gt;Тег HEAD&lt;/title&gt; &lt;/head&gt;<p>Тег &lt;title&gt; можно написать на странице только один раз.</p>
32 &lt;head&gt; &lt;!-- Заголовок страницы --&gt; &lt;title&gt;Тег HEAD&lt;/title&gt; &lt;/head&gt;<p>Тег &lt;title&gt; можно написать на странице только один раз.</p>
33 <p>Тег &lt;meta&gt; отвечает за размещение метаданных на веб-странице. Они не видны пользователю, но нужны браузеру и поисковым системам для оптимизации содержимого. Можно явно указать кодировку, информацию об авторстве страницы или другие данные для поисковых систем:</p>
33 <p>Тег &lt;meta&gt; отвечает за размещение метаданных на веб-странице. Они не видны пользователю, но нужны браузеру и поисковым системам для оптимизации содержимого. Можно явно указать кодировку, информацию об авторстве страницы или другие данные для поисковых систем:</p>
34 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;!-- Указываем явную кодировку UTF-8 --&gt; &lt;meta charset="UTF-8" /&gt; &lt;meta name="author" content="Skillbox Media" /&gt; &lt;/head&gt; &lt;body&gt; &lt;!-- "Привет" на японском --&gt; &lt;h1&gt; こんにちは &lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>Если в браузере по умолчанию не стояла кодировка UTF-8, то японские иероглифы могли бы не отобразиться корректно (впрочем, как и кириллические символы).</p>
34 &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;!-- Указываем явную кодировку UTF-8 --&gt; &lt;meta charset="UTF-8" /&gt; &lt;meta name="author" content="Skillbox Media" /&gt; &lt;/head&gt; &lt;body&gt; &lt;!-- "Привет" на японском --&gt; &lt;h1&gt; こんにちは &lt;/h1&gt; &lt;/body&gt; &lt;/html&gt;<p>Если в браузере по умолчанию не стояла кодировка UTF-8, то японские иероглифы могли бы не отобразиться корректно (впрочем, как и кириллические символы).</p>
35 <p>Однако с явно указанным параметром charset в общем теге &lt;head&gt; следующие символы корректно отобразятся в любом браузере:</p>
35 <p>Однако с явно указанным параметром charset в общем теге &lt;head&gt; следующие символы корректно отобразятся в любом браузере:</p>
36 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Вот ещё несколько основных метатегов:</p>
36 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Вот ещё несколько основных метатегов:</p>
37 <ul><li>viewport - отвечает за адаптивность: без него страница на мобильных устройствах может отображаться слишком маленькой или скроллиться горизонтально.</li>
37 <ul><li>viewport - отвечает за адаптивность: без него страница на мобильных устройствах может отображаться слишком маленькой или скроллиться горизонтально.</li>
38 <li>description - короткий текст, на основании которого поисковики составляют сниппет.</li>
38 <li>description - короткий текст, на основании которого поисковики составляют сниппет.</li>
39 <li>robots - даёт поисковикам рекомендации: индексировать ли страницу, следовать по ссылкам или нет.</li>
39 <li>robots - даёт поисковикам рекомендации: индексировать ли страницу, следовать по ссылкам или нет.</li>
40 <li>author, generator - указывают авторство или движок сайта. Обычно не критично, но, если важно, можно включить.</li>
40 <li>author, generator - указывают авторство или движок сайта. Обычно не критично, но, если важно, можно включить.</li>
41 <li>http-equiv - полезен для ретроградной совместимости - позволяет делать то же, что HTTP-заголовки (например, для кэширования).</li>
41 <li>http-equiv - полезен для ретроградной совместимости - позволяет делать то же, что HTTP-заголовки (например, для кэширования).</li>
42 </ul><p>С помощью &lt;link&gt; можно подключать внешние ресурсы: стили, шрифты, иконки. Этот тег не выводит ничего на экран, но помогает браузеру правильно оформить страницу.</p>
42 </ul><p>С помощью &lt;link&gt; можно подключать внешние ресурсы: стили, шрифты, иконки. Этот тег не выводит ничего на экран, но помогает браузеру правильно оформить страницу.</p>
43 &lt;head&gt; &lt;!-- Подключение внешнего файла CSS --&gt; &lt;link rel="stylesheet" href="styles.css" /&gt; &lt;!-- Подключение ICO-файла для отображения в браузере --&gt; &lt;link rel="icon" href="skillbox.ico" type="image/x-icon" /&gt; &lt;/head&gt;<ul><li>rel="stylesheet" сообщает браузеру, что нужно подключить таблицу стилей.</li>
43 &lt;head&gt; &lt;!-- Подключение внешнего файла CSS --&gt; &lt;link rel="stylesheet" href="styles.css" /&gt; &lt;!-- Подключение ICO-файла для отображения в браузере --&gt; &lt;link rel="icon" href="skillbox.ico" type="image/x-icon" /&gt; &lt;/head&gt;<ul><li>rel="stylesheet" сообщает браузеру, что нужно подключить таблицу стилей.</li>
44 <li>rel="icon" задаёт фавикон - иконку сайта на вкладке браузера.</li>
44 <li>rel="icon" задаёт фавикон - иконку сайта на вкладке браузера.</li>
45 </ul><p>Вот ICO-файл, который мы подключили в &lt;head&gt;. Можете его скачать, он пригодится вам в разделе с практикой.</p>
45 </ul><p>Вот ICO-файл, который мы подключили в &lt;head&gt;. Можете его скачать, он пригодится вам в разделе с практикой.</p>
46 <em>Изображение: Skillbox Media</em><p>Если открыть браузер, то фавикон поменяется:</p>
46 <em>Изображение: Skillbox Media</em><p>Если открыть браузер, то фавикон поменяется:</p>
47 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Иногда на сайте много ссылок, которые ведут на страницы одного и того же сайта. Чтобы не прописывать в каждой ссылке полный адрес, можно задать "базу" - общий начальный путь. Для этого и существует тег &lt;base&gt;.</p>
47 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Иногда на сайте много ссылок, которые ведут на страницы одного и того же сайта. Чтобы не прописывать в каждой ссылке полный адрес, можно задать "базу" - общий начальный путь. Для этого и существует тег &lt;base&gt;.</p>
48 <p>Он указывается в &lt;head&gt; и сообщает браузеру, с чего начинать все относительные ссылки на странице.</p>
48 <p>Он указывается в &lt;head&gt; и сообщает браузеру, с чего начинать все относительные ссылки на странице.</p>
49 <p>Допустим, у вас есть базовый адрес:</p>
49 <p>Допустим, у вас есть базовый адрес:</p>
50 &lt;base href="https://www.google.com/"&gt;<p>А в теле страницы ссылка указана так:</p>
50 &lt;base href="https://www.google.com/"&gt;<p>А в теле страницы ссылка указана так:</p>
51 &lt;a href="imghp"&gt;Поиск по картинкам в Google&lt;/a&gt;<p>Браузер сам подставит начало из &lt;base&gt;, и получится такая ссылка:</p>
51 &lt;a href="imghp"&gt;Поиск по картинкам в Google&lt;/a&gt;<p>Браузер сам подставит начало из &lt;base&gt;, и получится такая ссылка:</p>
52 https://www.google.com/imghp<p>На странице можно использовать только один тег &lt;base&gt;, иначе браузер не поймёт, какой базовый адрес выбрать.</p>
52 https://www.google.com/imghp<p>На странице можно использовать только один тег &lt;base&gt;, иначе браузер не поймёт, какой базовый адрес выбрать.</p>
53 <p>Иногда стили удобно писать прямо внутри HTML-документа. Это может пригодиться, если:</p>
53 <p>Иногда стили удобно писать прямо внутри HTML-документа. Это может пригодиться, если:</p>
54 <ul><li>вы пишете демо или тестируете что-то локально;</li>
54 <ul><li>вы пишете демо или тестируете что-то локально;</li>
55 <li>стили нужны только для одной страницы;</li>
55 <li>стили нужны только для одной страницы;</li>
56 <li>файл со стилями подключить затруднительно.</li>
56 <li>файл со стилями подключить затруднительно.</li>
57 </ul><p>Делается это с помощью тега &lt;style&gt;.</p>
57 </ul><p>Делается это с помощью тега &lt;style&gt;.</p>
58 &lt;head&gt; &lt;style&gt; body { font-family: 'Segoe UI', sans-serif; background-color: #f0f0f0; color: #333; } h1 { color: darkslateblue; } &lt;/style&gt; &lt;/head&gt;<p>Но лучше использовать внешний CSS-файл через &lt;link&gt;, - так удобнее поддерживать стили и переиспользовать их.</p>
58 &lt;head&gt; &lt;style&gt; body { font-family: 'Segoe UI', sans-serif; background-color: #f0f0f0; color: #333; } h1 { color: darkslateblue; } &lt;/style&gt; &lt;/head&gt;<p>Но лучше использовать внешний CSS-файл через &lt;link&gt;, - так удобнее поддерживать стили и переиспользовать их.</p>
59 <p>Скрипты управляют поведением страницы. Их можно размещать как в конце &lt;body&gt;, так и в &lt;head&gt; - в зависимости от задачи.</p>
59 <p>Скрипты управляют поведением страницы. Их можно размещать как в конце &lt;body&gt;, так и в &lt;head&gt; - в зависимости от задачи.</p>
60 <p>Есть два основных способа использовать &lt;script&gt; в &lt;head&gt;.</p>
60 <p>Есть два основных способа использовать &lt;script&gt; в &lt;head&gt;.</p>
61 <p><strong>1. Встроенный скрипт - код пишется прямо внутри тега:</strong></p>
61 <p><strong>1. Встроенный скрипт - код пишется прямо внутри тега:</strong></p>
62 &lt;head&gt; &lt;script&gt; console.log("Это находится в Head"); &lt;/script&gt; &lt;/head&gt;<p>Этот способ подойдёт для коротких или критически важных скриптов, которые должны выполниться до загрузки страницы.</p>
62 &lt;head&gt; &lt;script&gt; console.log("Это находится в Head"); &lt;/script&gt; &lt;/head&gt;<p>Этот способ подойдёт для коротких или критически важных скриптов, которые должны выполниться до загрузки страницы.</p>
63 <p><strong>2. Внешний скрипт - подключается файл JavaScript:</strong></p>
63 <p><strong>2. Внешний скрипт - подключается файл JavaScript:</strong></p>
64 &lt;head&gt; &lt;script src="app.js" defer&gt;&lt;/script&gt; &lt;/head&gt;<p>Атрибут defer здесь говорит браузеру: загрузи скрипт сейчас, но выполни его после полной загрузки HTML.</p>
64 &lt;head&gt; &lt;script src="app.js" defer&gt;&lt;/script&gt; &lt;/head&gt;<p>Атрибут defer здесь говорит браузеру: загрузи скрипт сейчас, но выполни его после полной загрузки HTML.</p>
65 <p>Внешние скрипты по нескольким причинам удобнее внутренних:</p>
65 <p>Внешние скрипты по нескольким причинам удобнее внутренних:</p>
66 <ul><li>Код JavaScript хранится отдельно от HTML - это упрощает структуру страницы, так её легче поддерживать.</li>
66 <ul><li>Код JavaScript хранится отдельно от HTML - это упрощает структуру страницы, так её легче поддерживать.</li>
67 <li>Один и тот же файл можно использовать на нескольких страницах - это экономит ресурсы и ускоряет загрузку.</li>
67 <li>Один и тот же файл можно использовать на нескольких страницах - это экономит ресурсы и ускоряет загрузку.</li>
68 <li>Изменения в логике поведения не требуют редактирования HTML-документа - достаточно обновить JS-файл.</li>
68 <li>Изменения в логике поведения не требуют редактирования HTML-документа - достаточно обновить JS-файл.</li>
69 </ul><p>Во всех случаях нужно осторожно размещать скрипты в &lt;head&gt; - особенно если они не отложены (defer), потому что скрипты могут замедлить загрузку сайта.</p>
69 </ul><p>Во всех случаях нужно осторожно размещать скрипты в &lt;head&gt; - особенно если они не отложены (defer), потому что скрипты могут замедлить загрузку сайта.</p>
70 <p>Хотя содержимое тега &lt;head&gt; не видно пользователю, оно напрямую влияет на то, как страница работает и как она воспринимается браузером, поисковыми системами и внешними сервисами.</p>
70 <p>Хотя содержимое тега &lt;head&gt; не видно пользователю, оно напрямую влияет на то, как страница работает и как она воспринимается браузером, поисковыми системами и внешними сервисами.</p>
71 <p>Браузер сначала читает содержимое &lt;head&gt;, чтобы понять:</p>
71 <p>Браузер сначала читает содержимое &lt;head&gt;, чтобы понять:</p>
72 <ul><li>какую кодировку использовать;</li>
72 <ul><li>какую кодировку использовать;</li>
73 <li>какие стили подключить;</li>
73 <li>какие стили подключить;</li>
74 <li>как адаптировать страницу к ширине экрана.</li>
74 <li>как адаптировать страницу к ширине экрана.</li>
75 </ul><p>Без этих настроек сайт может выглядеть некорректно - например, текст будет с иероглифами или страница не подстроится под мобильный экран.</p>
75 </ul><p>Без этих настроек сайт может выглядеть некорректно - например, текст будет с иероглифами или страница не подстроится под мобильный экран.</p>
76 <p>Когда браузер загружает страницу, он обычно останавливается на каждом теге &lt;script&gt; и ждёт, пока скрипт загрузится и выполнится. Это может замедлить отображение контента. Атрибут defer решает эту проблему: он позволяет загрузить скрипт в фоновом режиме и выполнить его только после того, как вся HTML-разметка будет обработана. В результате:</p>
76 <p>Когда браузер загружает страницу, он обычно останавливается на каждом теге &lt;script&gt; и ждёт, пока скрипт загрузится и выполнится. Это может замедлить отображение контента. Атрибут defer решает эту проблему: он позволяет загрузить скрипт в фоновом режиме и выполнить его только после того, как вся HTML-разметка будет обработана. В результате:</p>
77 <ul><li>страница загружается быстрее;</li>
77 <ul><li>страница загружается быстрее;</li>
78 <li>пользователь видит контент почти сразу;</li>
78 <li>пользователь видит контент почти сразу;</li>
79 <li>сайт становится более отзывчивым и удобным для слабых устройств или при медленном интернете.</li>
79 <li>сайт становится более отзывчивым и удобным для слабых устройств или при медленном интернете.</li>
80 </ul><p>Поисковые системы используют данные из &lt;head&gt;, чтобы понять содержание страницы. Особенно важны теги &lt;title&gt; и &lt;meta name="description"&gt; - именно они часто отображаются в сниппетах на странице выдачи. Хорошо составленный заголовок и описание:</p>
80 </ul><p>Поисковые системы используют данные из &lt;head&gt;, чтобы понять содержание страницы. Особенно важны теги &lt;title&gt; и &lt;meta name="description"&gt; - именно они часто отображаются в сниппетах на странице выдачи. Хорошо составленный заголовок и описание:</p>
81 <ul><li>повышают кликабельность сайта в поиске;</li>
81 <ul><li>повышают кликабельность сайта в поиске;</li>
82 <li>помогают алгоритмам точнее оценить тематику страницы;</li>
82 <li>помогают алгоритмам точнее оценить тематику страницы;</li>
83 <li>позволяют выделиться среди конкурентов, особенно если упомянуты ключевые слова и выгоды.</li>
83 <li>позволяют выделиться среди конкурентов, особенно если упомянуты ключевые слова и выгоды.</li>
84 </ul><p>Когда вы публикуете ссылку на сайт в мессенджере или социальной сети, она может отображаться как простой URL или как красивая карточка с изображением, заголовком и описанием. Чтобы всё выглядело аккуратно и привлекательно, в &lt;head&gt; добавляют Open-Graph-теги.</p>
84 </ul><p>Когда вы публикуете ссылку на сайт в мессенджере или социальной сети, она может отображаться как простой URL или как красивая карточка с изображением, заголовком и описанием. Чтобы всё выглядело аккуратно и привлекательно, в &lt;head&gt; добавляют Open-Graph-теги.</p>
85 <p>Эти метатеги используют соцсети (например, "ВКонтакте" или Telegram), чтобы понять, какую информацию показывать при предпросмотре:</p>
85 <p>Эти метатеги используют соцсети (например, "ВКонтакте" или Telegram), чтобы понять, какую информацию показывать при предпросмотре:</p>
86 &lt;meta property="og:title" content="Название страницы" /&gt; &lt;meta property="og:description" content="Описание страницы" /&gt; &lt;meta property="og:image" content="https://example.com/preview.jpg" /&gt;<ul><li>og:title - заголовок карточки, чаще всего совпадает с &lt;title&gt;;</li>
86 &lt;meta property="og:title" content="Название страницы" /&gt; &lt;meta property="og:description" content="Описание страницы" /&gt; &lt;meta property="og:image" content="https://example.com/preview.jpg" /&gt;<ul><li>og:title - заголовок карточки, чаще всего совпадает с &lt;title&gt;;</li>
87 <li>og:description - краткое описание содержания страницы;</li>
87 <li>og:description - краткое описание содержания страницы;</li>
88 <li>og:image - ссылка на изображение, которое будет показано рядом со ссылкой.</li>
88 <li>og:image - ссылка на изображение, которое будет показано рядом со ссылкой.</li>
89 </ul><p>Без этих тегов соцсети могут автоматически выбрать неудачные заголовки, случайные картинки или вовсе не показать описание. Поэтому добавление Open-Graph-тегов - важный шаг для контроля внешнего вида ссылки.</p>
89 </ul><p>Без этих тегов соцсети могут автоматически выбрать неудачные заголовки, случайные картинки или вовсе не показать описание. Поэтому добавление Open-Graph-тегов - важный шаг для контроля внешнего вида ссылки.</p>
90 <p>Иногда сайт должен корректно работать не только в современных браузерах, но и в более старых версиях - например, в Internet Explorer, который до сих пор используется в некоторых организациях. Чтобы помочь таким браузерам понять, как отображать страницу, в &lt;head&gt; добавляют специальные теги.</p>
90 <p>Иногда сайт должен корректно работать не только в современных браузерах, но и в более старых версиях - например, в Internet Explorer, который до сих пор используется в некоторых организациях. Чтобы помочь таким браузерам понять, как отображать страницу, в &lt;head&gt; добавляют специальные теги.</p>
91 <p>Один из них - &lt;meta http-equiv&gt;.</p>
91 <p>Один из них - &lt;meta http-equiv&gt;.</p>
92 &lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;<p>Этот тег говорит браузеру Internet Explorer использовать максимально доступный движок отображения (Edge), а не устаревший режим совместимости. Это может предотвратить ошибки в вёрстке или в отображении стилей.</p>
92 &lt;meta http-equiv="X-UA-Compatible" content="IE=edge" /&gt;<p>Этот тег говорит браузеру Internet Explorer использовать максимально доступный движок отображения (Edge), а не устаревший режим совместимости. Это может предотвратить ошибки в вёрстке или в отображении стилей.</p>
93 <p>Кроме того, можно использовать и другие настройки совместимости. В этом поможет тег &lt;meta&gt;. Вот что ещё можно указать.</p>
93 <p>Кроме того, можно использовать и другие настройки совместимости. В этом поможет тег &lt;meta&gt;. Вот что ещё можно указать.</p>
94 <p><strong>Управление кэшированием</strong>- чтобы браузер знал, как долго хранить данные страницы:</p>
94 <p><strong>Управление кэшированием</strong>- чтобы браузер знал, как долго хранить данные страницы:</p>
95 &lt;meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /&gt;<p>Этот тег говорит браузеру каждый раз запрашивать страницу с сервера, не используя старые версии из кэша.</p>
95 &lt;meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" /&gt;<p>Этот тег говорит браузеру каждый раз запрашивать страницу с сервера, не используя старые версии из кэша.</p>
96 <p><strong>Региональные настройки</strong>- помогают указать язык и страну по умолчанию:</p>
96 <p><strong>Региональные настройки</strong>- помогают указать язык и страну по умолчанию:</p>
97 &lt;meta http-equiv="content-language" content="ru" /&gt;<p>Это может быть полезно для многоязычных сайтов или локализованных сервисов.</p>
97 &lt;meta http-equiv="content-language" content="ru" /&gt;<p>Это может быть полезно для многоязычных сайтов или локализованных сервисов.</p>
98 <p>Иногда по невнимательности разработчика теги &lt;title&gt;, &lt;meta&gt; или &lt;link&gt; оказываются не в том месте - например, внутри тега &lt;body&gt;. Это нарушает структуру документа: браузер может проигнорировать такие теги, а валидатор HTML покажет ошибку или предупреждение. Все подобные элементы должны находиться строго внутри &lt;head&gt;.</p>
98 <p>Иногда по невнимательности разработчика теги &lt;title&gt;, &lt;meta&gt; или &lt;link&gt; оказываются не в том месте - например, внутри тега &lt;body&gt;. Это нарушает структуру документа: браузер может проигнорировать такие теги, а валидатор HTML покажет ошибку или предупреждение. Все подобные элементы должны находиться строго внутри &lt;head&gt;.</p>
99 <p>Внешний файл со стилями нужно подключать через тег &lt;link&gt; именно в &lt;head&gt;. Если попытаться подключить его в другом месте, стили могут применяться с задержкой, и при загрузке страницы появится визуальное "моргание": сначала пользователь увидит неоформленный HTML, и только потом сработает CSS.</p>
99 <p>Внешний файл со стилями нужно подключать через тег &lt;link&gt; именно в &lt;head&gt;. Если попытаться подключить его в другом месте, стили могут применяться с задержкой, и при загрузке страницы появится визуальное "моргание": сначала пользователь увидит неоформленный HTML, и только потом сработает CSS.</p>
100 &lt;head&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;/head&gt;<p>CSS-стили должны подключаться раньше JavaScript. Если поменять порядок, скрипты могут выполниться до того, как применятся стили, что приведёт к некорректному отображению:</p>
100 &lt;head&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;/head&gt;<p>CSS-стили должны подключаться раньше JavaScript. Если поменять порядок, скрипты могут выполниться до того, как применятся стили, что приведёт к некорректному отображению:</p>
101 &lt;head&gt; &lt;!-- Сначала стили --&gt; &lt;link rel="stylesheet" href="main.css"&gt; &lt;!-- Потом JavaScript --&gt; &lt;script src="app.js" defer&gt;&lt;/script&gt; &lt;/head&gt;<p>Тег &lt;meta charset="UTF-8"&gt; задаёт кодировку текста на странице. Если его нет, браузер может не понять, как отображать кириллические или другие символы. В результате текст может замениться на иероглифы, "кракозябры" или знаки вопроса. Этот тег должен быть первым внутри &lt;head&gt;, до всех других метатегов, - иначе он может не сработать вовремя.</p>
101 &lt;head&gt; &lt;!-- Сначала стили --&gt; &lt;link rel="stylesheet" href="main.css"&gt; &lt;!-- Потом JavaScript --&gt; &lt;script src="app.js" defer&gt;&lt;/script&gt; &lt;/head&gt;<p>Тег &lt;meta charset="UTF-8"&gt; задаёт кодировку текста на странице. Если его нет, браузер может не понять, как отображать кириллические или другие символы. В результате текст может замениться на иероглифы, "кракозябры" или знаки вопроса. Этот тег должен быть первым внутри &lt;head&gt;, до всех других метатегов, - иначе он может не сработать вовремя.</p>
102 <p>Тег &lt;meta name="viewport"&gt; нужен для корректного отображения сайта на смартфонах и планшетах. Без него страница может не адаптироваться под ширину экрана, и пользователям придётся вручную масштабировать содержимое. Это ухудшает впечатление от сайта, особенно на мобильных устройствах.</p>
102 <p>Тег &lt;meta name="viewport"&gt; нужен для корректного отображения сайта на смартфонах и планшетах. Без него страница может не адаптироваться под ширину экрана, и пользователям придётся вручную масштабировать содержимое. Это ухудшает впечатление от сайта, особенно на мобильных устройствах.</p>
103 &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;<p>Не стоит вставлять в &lt;head&gt; всё подряд. Повторяющиеся теги, лишние библиотеки и скрипты не только замедляют загрузку, но и делают код трудночитаемым и трудноподдерживаемым.</p>
103 &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt;<p>Не стоит вставлять в &lt;head&gt; всё подряд. Повторяющиеся теги, лишние библиотеки и скрипты не только замедляют загрузку, но и делают код трудночитаемым и трудноподдерживаемым.</p>
104 <p><strong>Вот пример того, как делать не нужно:</strong></p>
104 <p><strong>Вот пример того, как делать не нужно:</strong></p>
105 &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Ужасный head&lt;/title&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;script src="jquery.js"&gt;&lt;/script&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;link rel="stylesheet" href="reset.css"&gt; &lt;script src="analytics.js"&gt;&lt;/script&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;!-- Повтор --&gt; &lt;meta charset="UTF-8"&gt; &lt;!-- Повтор --&gt; &lt;script src="slider.js"&gt;&lt;/script&gt; &lt;script src="popup.js"&gt;&lt;/script&gt; &lt;title&gt;Повтор заголовка&lt;/title&gt; &lt;!-- Повтор --&gt; &lt;link rel="stylesheet" href="custom-theme.css"&gt; &lt;meta name="description" content="Описание 1"&gt; &lt;meta name="description" content="Описание 2"&gt; &lt;!-- Повтор --&gt; &lt;script src="jquery.js"&gt;&lt;/script&gt; &lt;!-- Повтор --&gt; &lt;link rel="stylesheet" href="bootstrap.css"&gt; &lt;script src="unused-library.js"&gt;&lt;/script&gt; &lt;!-- Вообще не нужен --&gt; &lt;link rel="stylesheet" href="print.css" media="print"&gt; &lt;script&gt;alert("Серьёзно? alert в &lt;head&gt;?")&lt;/script&gt; &lt;!-- Без комментариев --&gt; &lt;/head&gt;<p>1. Создайте новый текстовый файл и назовите его index.html.</p>
105 &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Ужасный head&lt;/title&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;script src="jquery.js"&gt;&lt;/script&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;link rel="stylesheet" href="reset.css"&gt; &lt;script src="analytics.js"&gt;&lt;/script&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;!-- Повтор --&gt; &lt;meta charset="UTF-8"&gt; &lt;!-- Повтор --&gt; &lt;script src="slider.js"&gt;&lt;/script&gt; &lt;script src="popup.js"&gt;&lt;/script&gt; &lt;title&gt;Повтор заголовка&lt;/title&gt; &lt;!-- Повтор --&gt; &lt;link rel="stylesheet" href="custom-theme.css"&gt; &lt;meta name="description" content="Описание 1"&gt; &lt;meta name="description" content="Описание 2"&gt; &lt;!-- Повтор --&gt; &lt;script src="jquery.js"&gt;&lt;/script&gt; &lt;!-- Повтор --&gt; &lt;link rel="stylesheet" href="bootstrap.css"&gt; &lt;script src="unused-library.js"&gt;&lt;/script&gt; &lt;!-- Вообще не нужен --&gt; &lt;link rel="stylesheet" href="print.css" media="print"&gt; &lt;script&gt;alert("Серьёзно? alert в &lt;head&gt;?")&lt;/script&gt; &lt;!-- Без комментариев --&gt; &lt;/head&gt;<p>1. Создайте новый текстовый файл и назовите его index.html.</p>
106 <p>2. Откройте его в редакторе кода (например, в Visual Studio Code) и вставьте следующий код:</p>
106 <p>2. Откройте его в редакторе кода (например, в Visual Studio Code) и вставьте следующий код:</p>
107 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Привет!&lt;/h1&gt; &lt;p&gt;Это моя первая HTML‑страница с правильным head.&lt;/p&gt; &lt;/body&gt; &lt;/html&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta name="description" content="Мой первый сайт на HTML"&gt; &lt;title&gt;Привет, мир!&lt;/title&gt; &lt;link rel="icon" href="favicon.ico"&gt;<p>Здесь:</p>
107 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Привет!&lt;/h1&gt; &lt;p&gt;Это моя первая HTML‑страница с правильным head.&lt;/p&gt; &lt;/body&gt; &lt;/html&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta name="description" content="Мой первый сайт на HTML"&gt; &lt;title&gt;Привет, мир!&lt;/title&gt; &lt;link rel="icon" href="favicon.ico"&gt;<p>Здесь:</p>
108 <ul><li>&lt;meta charset="UTF-8"&gt; - указывает кодировку страницы UTF‑8. &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;<strong></strong>- делает сайт адаптивным для мобильных устройств;</li>
108 <ul><li>&lt;meta charset="UTF-8"&gt; - указывает кодировку страницы UTF‑8. &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt;<strong></strong>- делает сайт адаптивным для мобильных устройств;</li>
109 <li>width=device-width - устанавливает ширину страницы, равную ширине экрана устройства;</li>
109 <li>width=device-width - устанавливает ширину страницы, равную ширине экрана устройства;</li>
110 <li>initial-scale=1.0 - задаёт начальный масштаб страницы;</li>
110 <li>initial-scale=1.0 - задаёт начальный масштаб страницы;</li>
111 <li>&lt;meta name="description" content="Мой первый сайт на HTML"&gt; - краткое описание страницы для поисковых систем;</li>
111 <li>&lt;meta name="description" content="Мой первый сайт на HTML"&gt; - краткое описание страницы для поисковых систем;</li>
112 <li>&lt;title&gt;Привет, мир!&lt;/title&gt; - заголовок страницы;</li>
112 <li>&lt;title&gt;Привет, мир!&lt;/title&gt; - заголовок страницы;</li>
113 <li>&lt;link rel="icon" href="favicon.ico"&gt; - подключает иконку сайта (favicon).</li>
113 <li>&lt;link rel="icon" href="favicon.ico"&gt; - подключает иконку сайта (favicon).</li>
114 </ul><p>3. Скачайте файл favicon.ico с<a>Google-диска</a>и положите его в ту же папку, что и index.html. Это значок страницы, который браузер покажет на вкладке.</p>
114 </ul><p>3. Скачайте файл favicon.ico с<a>Google-диска</a>и положите его в ту же папку, что и index.html. Это значок страницы, который браузер покажет на вкладке.</p>
115 <p>4. Сохраните файл и откройте его в браузере (например, в Google Chrome). Вы должны увидеть заголовок "Привет!" и описание под ним.</p>
115 <p>4. Сохраните файл и откройте его в браузере (например, в Google Chrome). Вы должны увидеть заголовок "Привет!" и описание под ним.</p>
116 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Чтобы добавить стили и скрипты, создайте два новых файла рядом с index.html:</p>
116 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Чтобы добавить стили и скрипты, создайте два новых файла рядом с index.html:</p>
117 <ul><li>style.css - для стилей;</li>
117 <ul><li>style.css - для стилей;</li>
118 <li>script.js - для JavaScript.</li>
118 <li>script.js - для JavaScript.</li>
119 </ul><p>В файл style.css вставьте:</p>
119 </ul><p>В файл style.css вставьте:</p>
120 body { background-color: #f0f8ff; font-family: Arial, sans-serif; }<p>В файл script.js вставьте:</p>
120 body { background-color: #f0f8ff; font-family: Arial, sans-serif; }<p>В файл script.js вставьте:</p>
121 console.log("Скрипт работает!");<p>Снова откройте index.html и добавьте ссылки на CSS и JavaScript в раздел &lt;head&gt;:</p>
121 console.log("Скрипт работает!");<p>Снова откройте index.html и добавьте ссылки на CSS и JavaScript в раздел &lt;head&gt;:</p>
122 &lt;link rel="stylesheet" href="style.css"&gt; &lt;script src="script.js" defer&gt;&lt;/script&gt;<p>Итоговый код будет выглядеть так:</p>
122 &lt;link rel="stylesheet" href="style.css"&gt; &lt;script src="script.js" defer&gt;&lt;/script&gt;<p>Итоговый код будет выглядеть так:</p>
123 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta name="description" content="Мой первый сайт на HTML"&gt; &lt;title&gt;Привет, мир!&lt;/title&gt; &lt;link rel="icon" href="favicon.ico"&gt; &lt;!-- Подключение внешних файлов --&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;script src="script.js" defer&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Привет!&lt;/h1&gt; &lt;p&gt;Это моя первая HTML‑страница с правильным head.&lt;/p&gt; &lt;/body&gt; &lt;/html&gt;<ul><li>Убедитесь, что все три файла - index.html, style.css и script.js - находятся в одной папке.</li>
123 &lt;!DOCTYPE html&gt; &lt;html lang="ru"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0"&gt; &lt;meta name="description" content="Мой первый сайт на HTML"&gt; &lt;title&gt;Привет, мир!&lt;/title&gt; &lt;link rel="icon" href="favicon.ico"&gt; &lt;!-- Подключение внешних файлов --&gt; &lt;link rel="stylesheet" href="style.css"&gt; &lt;script src="script.js" defer&gt;&lt;/script&gt; &lt;/head&gt; &lt;body&gt; &lt;h1&gt;Привет!&lt;/h1&gt; &lt;p&gt;Это моя первая HTML‑страница с правильным head.&lt;/p&gt; &lt;/body&gt; &lt;/html&gt;<ul><li>Убедитесь, что все три файла - index.html, style.css и script.js - находятся в одной папке.</li>
124 <li>Откройте index.html в браузере и обновите страницу сочетанием клавиш<strong>Shift + Ctrl + R</strong>.</li>
124 <li>Откройте index.html в браузере и обновите страницу сочетанием клавиш<strong>Shift + Ctrl + R</strong>.</li>
125 <li>Откройте консоль разработчика (F12 → вкладка "Консоль").</li>
125 <li>Откройте консоль разработчика (F12 → вкладка "Консоль").</li>
126 </ul><p>Если всё сделано правильно, на странице появится голубой фон и будет новый шрифт, а в консоли выведется сообщение:</p>
126 </ul><p>Если всё сделано правильно, на странице появится голубой фон и будет новый шрифт, а в консоли выведется сообщение:</p>
127 Скрипт работает!<em>Скриншот: Google Chrome / Skillbox Media</em><a>Курс с трудоустройством: "Профессия Фронтенд-разработчик + ИИ" Узнать о курсе</a>
127 Скрипт работает!<em>Скриншот: Google Chrome / Skillbox Media</em><a>Курс с трудоустройством: "Профессия Фронтенд-разработчик + ИИ" Узнать о курсе</a>