Тег <details>
Описание
Тег <details>
создает интерактивный виджет, который пользователь может раскрывать или скрывать. Содержимое элемента скрыто, пока не будет активировано.
<details>
<summary>Подробная информация</summary>
<p>Скрытое содержимое, которое появится при клике.</p>
</details>
<details open>
<summary>Частые вопросы</summary>
<p>Ответ на часто задаваемый вопрос.</p>
</details>
<style>
details { border: 1px solid #ddd; padding: 10px; margin-bottom: 10px; }
summary { cursor: pointer; font-weight: bold; }
</style>
<details>
<summary>Инструкция</summary>
<ol>
<li>Шаг первый</li>
<li>Шаг второй</li>
</ol>
</details>
Ключевые особенности:
- Работает без JavaScript (нативный HTML-элемент)
- Обязательно должен содержать
<summary>
(первый дочерний элемент) - Поддерживает атрибут
open
для отображения по умолчанию - Может содержать любые HTML-элементы внутри
- Доступен для стилизации через CSS
Практические применения:
- Создание аккордеонов и раскрывающихся панелей
- Организация FAQ-разделов
- Скрытие дополнительной информации
- Постепенное раскрытие сложного контента
Советы по использованию:
- Всегда добавляйте понятный текст в
<summary>
- Для сложных виджетов можно управлять состоянием через JavaScript
- Используйте ARIA-атрибуты для улучшения доступности
- Тестируйте кросс-браузерную совместимость (частичная поддержка в IE/Edge)
Атрибуты
open | Указывает, что содержимое элемента должно быть видимым при загрузке страницы |
accesskey | Определяет горячую клавишу для активации/фокусировки элемента |
class | Задает один или несколько классов CSS для стилизации элемента |
contenteditable | Указывает, может ли пользователь редактировать содержимое элемента |
data-* | Используется для хранения пользовательских данных в элементах |
dir | Определяет направление текста: слева направо (ltr) или справа налево (rtl) |
hidden | Скрывает элемент, делая его невидимым и недоступным для пользователя |
id | Уникальный идентификатор элемента в документе |
lang | Определяет язык содержимого элемента |
spellcheck | Указывает, должна ли проверяться орфография в содержимом элемента |
style | Позволяет задавать CSS-стили непосредственно в атрибуте элемента |
tabindex | Определяет порядок перехода между элементами при нажатии Tab |
title | Задает всплывающую подсказку при наведении на элемент |
translate | Указывает, должен ли переводиться текст внутри элемента |
Поддержка браузерами
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|
79.0 | 12.0 | 15.0 | 49.0 | 6.0 |