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>15 авг 2025</li>
2 <ul><li>15 авг 2025</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Рассказываем, что такое список определений и как его создать в HTML.</p>
4 </ul><p>Рассказываем, что такое список определений и как его создать в HTML.</p>
5 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
5 <p>Иллюстрация: Polina Vari для Skillbox Media</p>
6 <p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
6 <p>Программист, консультант, специалист по документированию. Легко и доступно рассказывает о сложных вещах в программировании и дизайне.</p>
7 <p>Иногда нужно представить данные в формате "термин - описание": расшифровать аббревиатуру, перечислить характеристики устройства или дать краткую инструкцию. В HTML для этого есть специальная структура - список определений. Он создаётся с помощью трёх тегов: &lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt;.</p>
7 <p>Иногда нужно представить данные в формате "термин - описание": расшифровать аббревиатуру, перечислить характеристики устройства или дать краткую инструкцию. В HTML для этого есть специальная структура - список определений. Он создаётся с помощью трёх тегов: &lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt;.</p>
8 <p>В статье разберёмся, как они работают.</p>
8 <p>В статье разберёмся, как они работают.</p>
9 <p><strong>Содержание:</strong></p>
9 <p><strong>Содержание:</strong></p>
10 <ul><li><a>Как создать список определений</a></li>
10 <ul><li><a>Как создать список определений</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;dl&gt;, &lt;dt&gt;, &lt;dd&gt;</a></li>
13 <li><a>Атрибуты тегов &lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt;</a></li>
14 <li><a>Как поисковики и экранные читалки понимают список определений</a></li>
14 <li><a>Как поисковики и экранные читалки понимают список определений</a></li>
15 <li><a>Чем &lt;dl&gt; отличается от списков &lt;ul&gt; и &lt;ol&gt;</a></li>
15 <li><a>Чем &lt;dl&gt; отличается от списков &lt;ul&gt; и &lt;ol&gt;</a></li>
16 <li><a>Как оформить список определений с помощью CSS</a></li>
16 <li><a>Как оформить список определений с помощью CSS</a></li>
17 <li><a>Как списки определений отражаются в разных браузерах и на мобильных устройствах</a></li>
17 <li><a>Как списки определений отражаются в разных браузерах и на мобильных устройствах</a></li>
18 <li><a>Ошибки при работе со списками определений</a></li>
18 <li><a>Ошибки при работе со списками определений</a></li>
19 </ul><p>Это делается с помощью трёх тегов:</p>
19 </ul><p>Это делается с помощью трёх тегов:</p>
20 <ul><li>&lt;dl&gt; - контейнер для списка (от<em>definition list</em>);</li>
20 <ul><li>&lt;dl&gt; - контейнер для списка (от<em>definition list</em>);</li>
21 <li>&lt;dt&gt; - термин, который нужно объяснить (от<em>definition term</em>);</li>
21 <li>&lt;dt&gt; - термин, который нужно объяснить (от<em>definition term</em>);</li>
22 <li>&lt;dd&gt; - описание термина (от<em>definition description</em>).</li>
22 <li>&lt;dd&gt; - описание термина (от<em>definition description</em>).</li>
23 </ul><p>Вот как это выглядит в коде:</p>
23 </ul><p>Вот как это выглядит в коде:</p>
24 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки для создания веб-страниц.&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Язык оформления HTML-документов.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере такой список отображается вертикально: термин - на одной строке, описание - на следующей. Маркеры или номера как в обычных списках не используются.</p>
24 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки для создания веб-страниц.&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Язык оформления HTML-документов.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере такой список отображается вертикально: термин - на одной строке, описание - на следующей. Маркеры или номера как в обычных списках не используются.</p>
25 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Теги &lt;dl&gt;, &lt;dt&gt; и &lt;dd&gt; применяются, когда нужно отобразить структурированную информацию, например:</p>
25 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Теги &lt;dl&gt;, &lt;dt&gt; и &lt;dd&gt; применяются, когда нужно отобразить структурированную информацию, например:</p>
26 <ul><li>термины с расшифровкой (глоссарии);</li>
26 <ul><li>термины с расшифровкой (глоссарии);</li>
27 <li>список вопросов и ответов (FAQ);</li>
27 <li>список вопросов и ответов (FAQ);</li>
28 <li>характеристики товара или профиля;</li>
28 <li>характеристики товара или профиля;</li>
29 <li>краткие инструкции и справки;</li>
29 <li>краткие инструкции и справки;</li>
30 <li>метаданные - дата публикации, автор, категория и так далее.</li>
30 <li>метаданные - дата публикации, автор, категория и так далее.</li>
31 </ul><p>Выглядит это следующим образом.</p>
31 </ul><p>Выглядит это следующим образом.</p>
32 <p><strong>Список вопросов и ответов:</strong></p>
32 <p><strong>Список вопросов и ответов:</strong></p>
33 &lt;dl&gt; &lt;dt&gt;Как создать сайт?&lt;/dt&gt; &lt;dd&gt;Изучите HTML, CSS и JavaScript.&lt;/dd&gt; &lt;dt&gt;Где найти учебники?&lt;/dt&gt; &lt;dd&gt;В интернете, например, MDN.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере мы увидим это:</p>
33 &lt;dl&gt; &lt;dt&gt;Как создать сайт?&lt;/dt&gt; &lt;dd&gt;Изучите HTML, CSS и JavaScript.&lt;/dd&gt; &lt;dt&gt;Где найти учебники?&lt;/dt&gt; &lt;dd&gt;В интернете, например, MDN.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере мы увидим это:</p>
34 <em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>Характеристики товара или профиля пользователя:</strong></p>
34 <em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>Характеристики товара или профиля пользователя:</strong></p>
35 &lt;dl&gt; &lt;dt&gt;Процессор:&lt;/dt&gt; &lt;dd&gt;Intel Core i7&lt;/dd&gt; &lt;dt&gt;Оперативная память:&lt;/dt&gt; &lt;dd&gt;16 ГБ DDR4&lt;/dd&gt; &lt;dt&gt;Видеокарта:&lt;/dt&gt; &lt;dd&gt;NVIDIA RTX 3060&lt;/dd&gt; &lt;/dl&gt;<p>Вывод:</p>
35 &lt;dl&gt; &lt;dt&gt;Процессор:&lt;/dt&gt; &lt;dd&gt;Intel Core i7&lt;/dd&gt; &lt;dt&gt;Оперативная память:&lt;/dt&gt; &lt;dd&gt;16 ГБ DDR4&lt;/dd&gt; &lt;dt&gt;Видеокарта:&lt;/dt&gt; &lt;dd&gt;NVIDIA RTX 3060&lt;/dd&gt; &lt;/dl&gt;<p>Вывод:</p>
36 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Список определений должен строго соблюдать последовательность: термин (&lt;dt&gt;) - описание (&lt;dd&gt;). Каждый &lt;dt&gt; может иметь одно или несколько &lt;dd&gt; - и наоборот: несколько &lt;dt&gt; могут быть описаны одним &lt;dd&gt;. Главное, чтобы между ними была логическая связь.</p>
36 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Список определений должен строго соблюдать последовательность: термин (&lt;dt&gt;) - описание (&lt;dd&gt;). Каждый &lt;dt&gt; может иметь одно или несколько &lt;dd&gt; - и наоборот: несколько &lt;dt&gt; могут быть описаны одним &lt;dd&gt;. Главное, чтобы между ними была логическая связь.</p>
37 <p>Рассмотрим разные типы структур и поясним, когда какая применяется.</p>
37 <p>Рассмотрим разные типы структур и поясним, когда какая применяется.</p>
38 <p>Обычная структура для глоссариев или справок, когда каждому термину соответствует одно определение.</p>
38 <p>Обычная структура для глоссариев или справок, когда каждому термину соответствует одно определение.</p>
39 &lt;dl&gt; &lt;dt&gt;Frontend&lt;/dt&gt; &lt;dd&gt;Часть веб-разработки, отвечающая за внешний вид сайта.&lt;/dd&gt; &lt;/dl&gt;<em>Скриншот: Google Chrome / Skillbox Media</em><p>Используется, когда у понятия есть синонимы или разные обозначения, но описание у них общее.</p>
39 &lt;dl&gt; &lt;dt&gt;Frontend&lt;/dt&gt; &lt;dd&gt;Часть веб-разработки, отвечающая за внешний вид сайта.&lt;/dd&gt; &lt;/dl&gt;<em>Скриншот: Google Chrome / Skillbox Media</em><p>Используется, когда у понятия есть синонимы или разные обозначения, но описание у них общее.</p>
40 &lt;dl&gt; &lt;dt&gt;JS&lt;/dt&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt;Язык программирования для взаимодействия с элементами страницы.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере мы увидим следующее:</p>
40 &lt;dl&gt; &lt;dt&gt;JS&lt;/dt&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt;Язык программирования для взаимодействия с элементами страницы.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере мы увидим следующее:</p>
41 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Подходит, если нужно дать термину развернутое описание или привести несколько аспектов/толкований.</p>
41 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Подходит, если нужно дать термину развернутое описание или привести несколько аспектов/толкований.</p>
42 &lt;dl&gt; &lt;dt&gt;API&lt;/dt&gt; &lt;dd&gt;Интерфейс взаимодействия программ.&lt;/dd&gt; &lt;dd&gt;Набор функций для работы с внешними сервисами.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере будет так:</p>
42 &lt;dl&gt; &lt;dt&gt;API&lt;/dt&gt; &lt;dd&gt;Интерфейс взаимодействия программ.&lt;/dd&gt; &lt;dd&gt;Набор функций для работы с внешними сервисами.&lt;/dd&gt; &lt;/dl&gt;<p>В браузере будет так:</p>
43 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Применяется, когда нужно вывести дополнительную информацию о документе, файле, публикации или пользователе в виде простых фактов.</p>
43 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Применяется, когда нужно вывести дополнительную информацию о документе, файле, публикации или пользователе в виде простых фактов.</p>
44 &lt;h3&gt;Информация о статье&lt;/h3&gt; &lt;dl&gt; &lt;dt&gt;Автор&lt;/dt&gt; &lt;dd&gt;Таня Кузнецова&lt;/dd&gt; &lt;dt&gt;Дата публикации&lt;/dt&gt; &lt;dd&gt;21 июля 2025&lt;/dd&gt; &lt;dt&gt;Категория&lt;/dt&gt; &lt;dd&gt;HTML-разметка&lt;/dd&gt; &lt;dt&gt;Просмотры&lt;/dt&gt; &lt;dd&gt;1 245&lt;/dd&gt; &lt;/dl&gt;<p>В браузере будет вот так:</p>
44 &lt;h3&gt;Информация о статье&lt;/h3&gt; &lt;dl&gt; &lt;dt&gt;Автор&lt;/dt&gt; &lt;dd&gt;Таня Кузнецова&lt;/dd&gt; &lt;dt&gt;Дата публикации&lt;/dt&gt; &lt;dd&gt;21 июля 2025&lt;/dd&gt; &lt;dt&gt;Категория&lt;/dt&gt; &lt;dd&gt;HTML-разметка&lt;/dd&gt; &lt;dt&gt;Просмотры&lt;/dt&gt; &lt;dd&gt;1 245&lt;/dd&gt; &lt;/dl&gt;<p>В браузере будет вот так:</p>
45 <em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>Что нельзя делать</strong></p>
45 <em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>Что нельзя делать</strong></p>
46 <ul><li>Помещать в &lt;dl&gt; элементы, не относящиеся к структуре описания (например, &lt;li&gt;, &lt;p&gt; без контекста и так далее).</li>
46 <ul><li>Помещать в &lt;dl&gt; элементы, не относящиеся к структуре описания (например, &lt;li&gt;, &lt;p&gt; без контекста и так далее).</li>
47 <li>Начинать с &lt;dd&gt; без предваряющего &lt;dt&gt;.</li>
47 <li>Начинать с &lt;dd&gt; без предваряющего &lt;dt&gt;.</li>
48 <li>Перемешивать &lt;dt&gt; и &lt;dd&gt; бессистемно (например, &lt;dt&gt;, &lt;dd&gt;, &lt;dd&gt;, &lt;dt&gt; - это допустимо, но становится трудночитаемым).</li>
48 <li>Перемешивать &lt;dt&gt; и &lt;dd&gt; бессистемно (например, &lt;dt&gt;, &lt;dd&gt;, &lt;dd&gt;, &lt;dt&gt; - это допустимо, но становится трудночитаемым).</li>
49 </ul><p><strong>Рекомендации</strong></p>
49 </ul><p><strong>Рекомендации</strong></p>
50 <ul><li>Не используйте пустые теги &lt;dt&gt; или &lt;dd&gt;.</li>
50 <ul><li>Не используйте пустые теги &lt;dt&gt; или &lt;dd&gt;.</li>
51 <li>Не вставляйте внутри &lt;dt&gt; и &lt;dd&gt; блочные элементы вроде &lt;div&gt;, если в этом нет крайней необходимости. Это нарушает семантику и разметку, может привести к ошибкам и снижает доступность.</li>
51 <li>Не вставляйте внутри &lt;dt&gt; и &lt;dd&gt; блочные элементы вроде &lt;div&gt;, если в этом нет крайней необходимости. Это нарушает семантику и разметку, может привести к ошибкам и снижает доступность.</li>
52 <li>Если всё же нужны вложенные элементы, используйте &lt;span&gt;, &lt;strong&gt;, &lt;a&gt; и другие строчные теги, например:</li>
52 <li>Если всё же нужны вложенные элементы, используйте &lt;span&gt;, &lt;strong&gt;, &lt;a&gt; и другие строчные теги, например:</li>
53 </ul>&lt;dl&gt; &lt;dt&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/dt&gt; &lt;dd&gt; Язык &lt;em&gt;разметки&lt;/em&gt;, используемый для создания структуры веб-страниц. Пример тега: &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;. Подробнее см. на сайте &lt;a href="https://developer.mozilla.org/ru/docs/Web/HTML" target="_blank"&gt; MDN Web Docs &lt;/a&gt;. &lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt; &lt;span style="color: teal;"&gt;Технология оформления&lt;/span&gt; веб-страниц. Стили описываются с помощью деклараций, например: &lt;code&gt;font-size: 16px;&lt;/code&gt;. &lt;/dd&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt; &lt;strong&gt;Скриптовый язык&lt;/strong&gt;, позволяющий делать страницы интерактивными. Подробнее: &lt;a href="https://developer.mozilla.org/ru/docs/Web/JavaScript" target="_blank"&gt;документация JS&lt;/a&gt;. &lt;/dd&gt; &lt;/dl&gt;<p>В браузере это будет выглядеть так:</p>
53 </ul>&lt;dl&gt; &lt;dt&gt;&lt;strong&gt;HTML&lt;/strong&gt;&lt;/dt&gt; &lt;dd&gt; Язык &lt;em&gt;разметки&lt;/em&gt;, используемый для создания структуры веб-страниц. Пример тега: &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;. Подробнее см. на сайте &lt;a href="https://developer.mozilla.org/ru/docs/Web/HTML" target="_blank"&gt; MDN Web Docs &lt;/a&gt;. &lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt; &lt;span style="color: teal;"&gt;Технология оформления&lt;/span&gt; веб-страниц. Стили описываются с помощью деклараций, например: &lt;code&gt;font-size: 16px;&lt;/code&gt;. &lt;/dd&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt; &lt;strong&gt;Скриптовый язык&lt;/strong&gt;, позволяющий делать страницы интерактивными. Подробнее: &lt;a href="https://developer.mozilla.org/ru/docs/Web/JavaScript" target="_blank"&gt;документация JS&lt;/a&gt;. &lt;/dd&gt; &lt;/dl&gt;<p>В браузере это будет выглядеть так:</p>
54 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Все три тега принимают только глобальные атрибуты, то есть:</p>
54 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Все три тега принимают только глобальные атрибуты, то есть:</p>
55 <ul><li>id, class - для идентификации и привязки стилей;</li>
55 <ul><li>id, class - для идентификации и привязки стилей;</li>
56 <li>lang, dir - для указания языка и направления текста;</li>
56 <li>lang, dir - для указания языка и направления текста;</li>
57 <li>title - дополнительная подсказка при наведении;</li>
57 <li>title - дополнительная подсказка при наведении;</li>
58 <li>style, tabindex, события (onclick и другие) и так далее.</li>
58 <li>style, tabindex, события (onclick и другие) и так далее.</li>
59 </ul><p>Специальных, уникальных атрибутов у них нет - всё работает в рамках тех же правил, что и у большинства других HTML-элементов.</p>
59 </ul><p>Специальных, уникальных атрибутов у них нет - всё работает в рамках тех же правил, что и у большинства других HTML-элементов.</p>
60 <p>HTML помогает поисковым системам и специальные программам для людей с нарушением зрения лучше понимать сайт. Список определений с тегами &lt;dl&gt;, &lt;dt&gt; и &lt;dd&gt; - это семантическая структура, которая как раз и помогает сделать код понятнее и для браузера, и для скринридера.</p>
60 <p>HTML помогает поисковым системам и специальные программам для людей с нарушением зрения лучше понимать сайт. Список определений с тегами &lt;dl&gt;, &lt;dt&gt; и &lt;dd&gt; - это семантическая структура, которая как раз и помогает сделать код понятнее и для браузера, и для скринридера.</p>
61 <p>Поисковая система видит не сам текст, а HTML-структуру страницы. Когда вы используете теги &lt;dl&gt;, &lt;dt&gt; и &lt;dd&gt;, она понимает, что это не просто абзацы, а логически связанные пары - термин и его расшифровка.</p>
61 <p>Поисковая система видит не сам текст, а HTML-структуру страницы. Когда вы используете теги &lt;dl&gt;, &lt;dt&gt; и &lt;dd&gt;, она понимает, что это не просто абзацы, а логически связанные пары - термин и его расшифровка.</p>
62 <p>Например:</p>
62 <p>Например:</p>
63 &lt;dl&gt; &lt;dt&gt;Автор&lt;/dt&gt; &lt;dd&gt;Алексей Смирнов&lt;/dd&gt; &lt;dt&gt;Дата публикации&lt;/dt&gt; &lt;dd&gt;26 июля 2025&lt;/dd&gt; &lt;/dl&gt;<p>Поисковая система может воспринять такой текст как описание страницы и использовать его, например, в расширенном сниппете на странице поиска. Это будет полезно, если вы создаёте карточки товаров, справочные блоки или глоссарии.</p>
63 &lt;dl&gt; &lt;dt&gt;Автор&lt;/dt&gt; &lt;dd&gt;Алексей Смирнов&lt;/dd&gt; &lt;dt&gt;Дата публикации&lt;/dt&gt; &lt;dd&gt;26 июля 2025&lt;/dd&gt; &lt;/dl&gt;<p>Поисковая система может воспринять такой текст как описание страницы и использовать его, например, в расширенном сниппете на странице поиска. Это будет полезно, если вы создаёте карточки товаров, справочные блоки или глоссарии.</p>
64 <p>Чтобы такая структура сработала, нужно соблюдать порядок: &lt;dt&gt; - это всегда термин, а &lt;dd&gt; - его описание. Внутри &lt;dl&gt; не должно быть лишних тегов вроде &lt;p&gt; или &lt;li&gt; - они только мешают.</p>
64 <p>Чтобы такая структура сработала, нужно соблюдать порядок: &lt;dt&gt; - это всегда термин, а &lt;dd&gt; - его описание. Внутри &lt;dl&gt; не должно быть лишних тегов вроде &lt;p&gt; или &lt;li&gt; - они только мешают.</p>
65 <p>Скринридеры - это программы, которые озвучивают содержимое сайта вслух. Их используют люди с нарушением зрения. Для таких пользователей важно не только то, что написано на экране, но и как информация организована.</p>
65 <p>Скринридеры - это программы, которые озвучивают содержимое сайта вслух. Их используют люди с нарушением зрения. Для таких пользователей важно не только то, что написано на экране, но и как информация организована.</p>
66 <p>Если список определений размечен правильно, читалка скажет примерно так: "Список определений. Элемент 1 из 3. Термин: HTML. Описание: Язык разметки веб-страниц".</p>
66 <p>Если список определений размечен правильно, читалка скажет примерно так: "Список определений. Элемент 1 из 3. Термин: HTML. Описание: Язык разметки веб-страниц".</p>
67 <p>Но не все читалки работают одинаково. Например:</p>
67 <p>Но не все читалки работают одинаково. Например:</p>
68 <ul><li>VoiceOver (на macOS и iPhone) и NVDA (на Windows) обычно читают такие списки корректно;</li>
68 <ul><li>VoiceOver (на macOS и iPhone) и NVDA (на Windows) обычно читают такие списки корректно;</li>
69 <li>TalkBack на Android может не воспринимать список как единое целое;</li>
69 <li>TalkBack на Android может не воспринимать список как единое целое;</li>
70 <li>Safari может игнорировать дополнительную разметку, если вы вручную укажете роли role="term" и role="definition".</li>
70 <li>Safari может игнорировать дополнительную разметку, если вы вручную укажете роли role="term" и role="definition".</li>
71 </ul><p>В HTML есть специальный атрибут role - с его помощью можно указать, какую роль играет элемент на странице. Например, если вы пишете: &lt;div role="button"&gt;Купить&lt;/div&gt;, то браузер и читалка будут воспринимать обычный &lt;div&gt; как кнопку. В случае списка определений это лишнее. Теги &lt;dt&gt; и &lt;dd&gt; имеют нужную роль - браузер и читалка и так понимают, что это список определений. Дополнительные роли только мешают.</p>
71 </ul><p>В HTML есть специальный атрибут role - с его помощью можно указать, какую роль играет элемент на странице. Например, если вы пишете: &lt;div role="button"&gt;Купить&lt;/div&gt;, то браузер и читалка будут воспринимать обычный &lt;div&gt; как кнопку. В случае списка определений это лишнее. Теги &lt;dt&gt; и &lt;dd&gt; имеют нужную роль - браузер и читалка и так понимают, что это список определений. Дополнительные роли только мешают.</p>
72 <p>Поэтому лучше не добавлять к тегам &lt;dt&gt; и &lt;dd&gt; ничего лишнего - стандартной разметки достаточно, чтобы всё работало как надо.</p>
72 <p>Поэтому лучше не добавлять к тегам &lt;dt&gt; и &lt;dd&gt; ничего лишнего - стандартной разметки достаточно, чтобы всё работало как надо.</p>
73 <p>На самом деле, между этими тегами очень небольшая разница. Ориентируйтесь на свой здравый смысл. Но если соблюдать все формальности, то между этими видами списков есть семантическая разница.</p>
73 <p>На самом деле, между этими тегами очень небольшая разница. Ориентируйтесь на свой здравый смысл. Но если соблюдать все формальности, то между этими видами списков есть семантическая разница.</p>
74 <p>Если нужно показать термины с пояснениями, то подходит список определений - &lt;dl&gt;. А если просто перечислить элементы - в любом порядке или по шагам - лучше использовать списки &lt;ul&gt; и &lt;ol&gt;.</p>
74 <p>Если нужно показать термины с пояснениями, то подходит список определений - &lt;dl&gt;. А если просто перечислить элементы - в любом порядке или по шагам - лучше использовать списки &lt;ul&gt; и &lt;ol&gt;.</p>
75 <p>Такой список применяют, когда порядок элементов неважен. Например, чтобы перечислить ингредиенты, пункты меню или функции продукта.</p>
75 <p>Такой список применяют, когда порядок элементов неважен. Например, чтобы перечислить ингредиенты, пункты меню или функции продукта.</p>
76 <p>Каждый элемент помещается в тег &lt;li&gt;, а браузер отображает их с маркерами - кругами, точками, тире или другим стилем. Одним словом, это обыкновенный маркированный список.</p>
76 <p>Каждый элемент помещается в тег &lt;li&gt;, а браузер отображает их с маркерами - кругами, точками, тире или другим стилем. Одним словом, это обыкновенный маркированный список.</p>
77 &lt;ul&gt; &lt;li&gt;Яблоко&lt;/li&gt; &lt;li&gt;Банан&lt;/li&gt; &lt;li&gt;Апельсин&lt;/li&gt; &lt;/ul&gt;<p>Выглядит это так:</p>
77 &lt;ul&gt; &lt;li&gt;Яблоко&lt;/li&gt; &lt;li&gt;Банан&lt;/li&gt; &lt;li&gt;Апельсин&lt;/li&gt; &lt;/ul&gt;<p>Выглядит это так:</p>
78 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Это нумерованный список. Тег &lt;ol&gt; используется, когда важен порядок элементов (шаги инструкции, рейтинги и так далее). Элементы списка также заключаются в теги &lt;li&gt; и отображаются цифрами с точкой.</p>
78 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Это нумерованный список. Тег &lt;ol&gt; используется, когда важен порядок элементов (шаги инструкции, рейтинги и так далее). Элементы списка также заключаются в теги &lt;li&gt; и отображаются цифрами с точкой.</p>
79 &lt;h3&gt;Как установить приложение&lt;/h3&gt; &lt;ol&gt; &lt;li&gt;Перейдите на официальный сайт.&lt;/li&gt; &lt;li&gt;Скачайте установочный файл для вашей операционной системы.&lt;/li&gt; &lt;li&gt;Запустите установку и следуйте инструкциям мастера.&lt;/li&gt; &lt;li&gt;После установки откройте приложение и выполните вход.&lt;/li&gt; &lt;/ol&gt;<p>Выглядит он так:</p>
79 &lt;h3&gt;Как установить приложение&lt;/h3&gt; &lt;ol&gt; &lt;li&gt;Перейдите на официальный сайт.&lt;/li&gt; &lt;li&gt;Скачайте установочный файл для вашей операционной системы.&lt;/li&gt; &lt;li&gt;Запустите установку и следуйте инструкциям мастера.&lt;/li&gt; &lt;li&gt;После установки откройте приложение и выполните вход.&lt;/li&gt; &lt;/ol&gt;<p>Выглядит он так:</p>
80 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Чтобы список выглядел аккуратнее и было легче его читать, можно оформить его с помощью CSS.</p>
80 <em>Скриншот: Google Chrome / Skillbox Media</em><p>Чтобы список выглядел аккуратнее и было легче его читать, можно оформить его с помощью CSS.</p>
81 <p>Для примера создадим список &lt;dl&gt;:</p>
81 <p>Для примера создадим список &lt;dl&gt;:</p>
82 <p><strong>HTML</strong></p>
82 <p><strong>HTML</strong></p>
83 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки для создания веб-страниц.&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Используется для оформления HTML-документов.&lt;/dd&gt; &lt;/dl&gt;<p>И будем менять его CSS-оформление.</p>
83 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки для создания веб-страниц.&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Используется для оформления HTML-документов.&lt;/dd&gt; &lt;/dl&gt;<p>И будем менять его CSS-оформление.</p>
84 <p><strong>CSS</strong></p>
84 <p><strong>CSS</strong></p>
85 dl { margin: 1.5em 0; } dt { font-weight: bold; margin-top: 1em; } dd { margin-left: 1.5em; color: #555; }<em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>CSS</strong></p>
85 dl { margin: 1.5em 0; } dt { font-weight: bold; margin-top: 1em; } dd { margin-left: 1.5em; color: #555; }<em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>CSS</strong></p>
86 dl { border: 1px solid #ccc; padding: 1em; background-color: #f9f9f9; border-radius: 8px; } dt { font-weight: bold; color: #222; margin-top: 1em; } dd { margin-left: 1em; color: #555; }<em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>CSS</strong></p>
86 dl { border: 1px solid #ccc; padding: 1em; background-color: #f9f9f9; border-radius: 8px; } dt { font-weight: bold; color: #222; margin-top: 1em; } dd { margin-left: 1em; color: #555; }<em>Скриншот: Google Chrome / Skillbox Media</em><p><strong>CSS</strong></p>
87 dl { display: grid; grid-template-columns: max-content 1fr; row-gap: 0.5em; column-gap: 1em; } dt { font-weight: bold; text-align: right; } dd { margin: 0; }<em>Скриншот: Google Chrome / Skillbox Media</em><ul><li>Убирайте margin у &lt;dd&gt;, если используете grid или flex.</li>
87 dl { display: grid; grid-template-columns: max-content 1fr; row-gap: 0.5em; column-gap: 1em; } dt { font-weight: bold; text-align: right; } dd { margin: 0; }<em>Скриншот: Google Chrome / Skillbox Media</em><ul><li>Убирайте margin у &lt;dd&gt;, если используете grid или flex.</li>
88 <li>Используйте :first-of-type, :last-of-type, :nth-of-type() для точечной стилизации терминов при необходимости, например:</li>
88 <li>Используйте :first-of-type, :last-of-type, :nth-of-type() для точечной стилизации терминов при необходимости, например:</li>
89 </ul><p><strong>HTML:</strong></p>
89 </ul><p><strong>HTML:</strong></p>
90 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки для веб-страниц.&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Язык стилей для оформления HTML.&lt;/dd&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt;Добавляет интерактивность на страницы.&lt;/dd&gt; &lt;/dl&gt;<p><strong>CSS:</strong></p>
90 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки для веб-страниц.&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Язык стилей для оформления HTML.&lt;/dd&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt;Добавляет интерактивность на страницы.&lt;/dd&gt; &lt;/dl&gt;<p><strong>CSS:</strong></p>
91 /* Стилизуем первый термин */ dt:first-of-type { color: darkred; text-transform: uppercase; } /* Стилизуем последнее описание */ dd:last-of-type { font-style: italic; color: #444; } /* Стилизуем второй термин */ dt:nth-of-type(2) { background-color: #e0f7fa; padding: 0.2em 0.5em; border-radius: 4px; } /* Стилизуем каждое нечётное описание */ dd:nth-of-type(odd) { background-color: #f9f9f9; padding-left: 1em; border-left: 3px solid #ccc; }<em>Скриншот: Google Chrome / Skillbox Media</em><p>Что делает каждая строка:</p>
91 /* Стилизуем первый термин */ dt:first-of-type { color: darkred; text-transform: uppercase; } /* Стилизуем последнее описание */ dd:last-of-type { font-style: italic; color: #444; } /* Стилизуем второй термин */ dt:nth-of-type(2) { background-color: #e0f7fa; padding: 0.2em 0.5em; border-radius: 4px; } /* Стилизуем каждое нечётное описание */ dd:nth-of-type(odd) { background-color: #f9f9f9; padding-left: 1em; border-left: 3px solid #ccc; }<em>Скриншот: Google Chrome / Skillbox Media</em><p>Что делает каждая строка:</p>
92 <ul><li>dt:first-of-type стилизует первый &lt;dt&gt;;</li>
92 <ul><li>dt:first-of-type стилизует первый &lt;dt&gt;;</li>
93 <li>dd:last-of-type стилизует последний &lt;dd&gt;;</li>
93 <li>dd:last-of-type стилизует последний &lt;dd&gt;;</li>
94 <li>dt:nth-of-type(2) стилизует второй &lt;dt&gt;;</li>
94 <li>dt:nth-of-type(2) стилизует второй &lt;dt&gt;;</li>
95 <li>dd:nth-of-type(odd) стилизует каждое нечётное &lt;dd&gt;.</li>
95 <li>dd:nth-of-type(odd) стилизует каждое нечётное &lt;dd&gt;.</li>
96 </ul><p>Списки определений (&lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt;) отражаются корректно во всех современных браузерах - Google Chrome, Mozilla Firefox, Microsoft Edge, Safari, Opera:</p>
96 </ul><p>Списки определений (&lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt;) отражаются корректно во всех современных браузерах - Google Chrome, Mozilla Firefox, Microsoft Edge, Safari, Opera:</p>
97 <ul><li>&lt;dl&gt; отображается как блочный элемент;</li>
97 <ul><li>&lt;dl&gt; отображается как блочный элемент;</li>
98 <li>&lt;dt&gt; обычно выделяется жирным шрифтом;</li>
98 <li>&lt;dt&gt; обычно выделяется жирным шрифтом;</li>
99 <li>&lt;dd&gt; имеет отступ слева, чтобы показать, что это описание;</li>
99 <li>&lt;dd&gt; имеет отступ слева, чтобы показать, что это описание;</li>
100 <li>браузеры не вставляют маркеры, как это делают для &lt;ul&gt; или &lt;ol&gt;.</li>
100 <li>браузеры не вставляют маркеры, как это делают для &lt;ul&gt; или &lt;ol&gt;.</li>
101 </ul><p>На мобильных устройствах есть особенности: на экранах шириной до 600px отступы &lt;dd&gt; кажутся слишком большими, а длинные строки в &lt;dd&gt; не помещаются по ширине - особенно в характеристиках товаров или технических таблицах.</p>
101 </ul><p>На мобильных устройствах есть особенности: на экранах шириной до 600px отступы &lt;dd&gt; кажутся слишком большими, а длинные строки в &lt;dd&gt; не помещаются по ширине - особенно в характеристиках товаров или технических таблицах.</p>
102 <p>Список определений для мобильных устройств можно адаптировать так:</p>
102 <p>Список определений для мобильных устройств можно адаптировать так:</p>
103 @media (max-width: 600px) { dl { grid-template-columns: 1fr; } dt { font-weight: bold; margin-top: 12px; } dd { margin: 0 0 10px 0; } }<p>Здесь:</p>
103 @media (max-width: 600px) { dl { grid-template-columns: 1fr; } dt { font-weight: bold; margin-top: 12px; } dd { margin: 0 0 10px 0; } }<p>Здесь:</p>
104 <ul><li>grid-template-columns: 1fr;Переводит структуру в одну колонку, чтобы термин и описание шли друг за другом по вертикали. На узких экранах не будет сломанных строк и горизонтального скролла.</li>
104 <ul><li>grid-template-columns: 1fr;Переводит структуру в одну колонку, чтобы термин и описание шли друг за другом по вертикали. На узких экранах не будет сломанных строк и горизонтального скролла.</li>
105 <li>dt { font-weight: bold; margin-top: 12px; }Подчёркивает термин (&lt;dt&gt;) жирным и даёт верхний отступ, чтобы визуально отделить блоки.</li>
105 <li>dt { font-weight: bold; margin-top: 12px; }Подчёркивает термин (&lt;dt&gt;) жирным и даёт верхний отступ, чтобы визуально отделить блоки.</li>
106 <li>dd { margin: 0 0 10px 0; }Добавляет отступ снизу у описания - улучшает читаемость между парами термин - описание.</li>
106 <li>dd { margin: 0 0 10px 0; }Добавляет отступ снизу у описания - улучшает читаемость между парами термин - описание.</li>
107 </ul><p>Вот часто встречающиеся ошибки при работе со списками определений в HTML. Такой код теряет семантику: поисковики, скринридеры и другие инструменты не понимают структуру как "термин - описание".</p>
107 </ul><p>Вот часто встречающиеся ошибки при работе со списками определений в HTML. Такой код теряет семантику: поисковики, скринридеры и другие инструменты не понимают структуру как "термин - описание".</p>
108 <p>Вместо семантических &lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt; применяются &lt;div&gt;, &lt;ul&gt;, &lt;li&gt; или другие универсальные элементы:</p>
108 <p>Вместо семантических &lt;dl&gt;, &lt;dt&gt;, &lt;dd&gt; применяются &lt;div&gt;, &lt;ul&gt;, &lt;li&gt; или другие универсальные элементы:</p>
109 &lt;div&gt;&lt;b&gt;HTML:&lt;/b&gt; Язык разметки&lt;/div&gt;<p>Правильно<strong>:</strong></p>
109 &lt;div&gt;&lt;b&gt;HTML:&lt;/b&gt; Язык разметки&lt;/div&gt;<p>Правильно<strong>:</strong></p>
110 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки&lt;/dd&gt; &lt;/dl&gt;<p>Иногда разработчики используют жирный шрифт и отступы, чтобы визуально имитировать список определений, но не используют правильные теги:</p>
110 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык разметки&lt;/dd&gt; &lt;/dl&gt;<p>Иногда разработчики используют жирный шрифт и отступы, чтобы визуально имитировать список определений, но не используют правильные теги:</p>
111 &lt;p&gt;&lt;strong&gt;HTML:&lt;/strong&gt; Язык гипертекстовой разметки&lt;/p&gt; &lt;p&gt;&lt;strong&gt;CSS:&lt;/strong&gt; Таблицы каскадных стилей&lt;/p&gt; &lt;p&gt;&lt;strong&gt;JavaScript:&lt;/strong&gt; Язык программирования для веба&lt;/p&gt;<p>Здесь используются теги &lt;p&gt; и &lt;strong&gt; для визуального выделения, но это не список определений.</p>
111 &lt;p&gt;&lt;strong&gt;HTML:&lt;/strong&gt; Язык гипертекстовой разметки&lt;/p&gt; &lt;p&gt;&lt;strong&gt;CSS:&lt;/strong&gt; Таблицы каскадных стилей&lt;/p&gt; &lt;p&gt;&lt;strong&gt;JavaScript:&lt;/strong&gt; Язык программирования для веба&lt;/p&gt;<p>Здесь используются теги &lt;p&gt; и &lt;strong&gt; для визуального выделения, но это не список определений.</p>
112 <p>Правильно будет так:</p>
112 <p>Правильно будет так:</p>
113 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык гипертекстовой разметки&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Таблицы каскадных стилей&lt;/dd&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt;Язык программирования для веба&lt;/dd&gt; &lt;/dl&gt;<a>Курс с трудоустройством: "Профессия Фронтенд-разработчик + ИИ" Узнать о курсе</a>
113 &lt;dl&gt; &lt;dt&gt;HTML&lt;/dt&gt; &lt;dd&gt;Язык гипертекстовой разметки&lt;/dd&gt; &lt;dt&gt;CSS&lt;/dt&gt; &lt;dd&gt;Таблицы каскадных стилей&lt;/dd&gt; &lt;dt&gt;JavaScript&lt;/dt&gt; &lt;dd&gt;Язык программирования для веба&lt;/dd&gt; &lt;/dl&gt;<a>Курс с трудоустройством: "Профессия Фронтенд-разработчик + ИИ" Узнать о курсе</a>