HTML-элемент <details>
используется для раскрытия скрытой (дополнительной) информации.
Виджет раскрытия обычно представлен на экране с использованием небольшого треугольника, который поворачивается, чтобы показать состояние открытия / закрытия, с меткой рядом с треугольником. Если первый дочерний элемент элемента <details>
является <summary>
, содержимое элемента <summary>
используется в качестве метки для виджета раскрытия.
{{EmbedInteractiveExample("pages/tabbed/details.html", "tabbed-standard")}}
Content categories | Flow content, sectioning root, interactive content, palpable content. |
---|---|
Permitted content | One {{HTMLElement("summary")}} element followed by flow content. |
Tag omission | {{no_tag_omission}} |
Permitted parents | Any element that accepts flow content. |
Permitted ARIA roles | None |
DOM interface | {{domxref("HTMLDetailsElement")}} |
Элемент поддерживает только глобальные атрибуты.
<details> <summary>Some details</summary> <p>More info about the details.</p> </details> <details open> <summary>Even more details</summary> <p>Here are even more details about the details.</p> </details>
{{EmbedLiveSample("Пример")}}
Примечание: Если приведённый выше пример не работает, см. {{anch("Browser compatibility")}} , чтобы определить поддерживает ли вообще ваш браузер эту функцию.
Следуя более новой спецификации, Firefox отображает элемент summary как display: list-item
и маркер можно стилизовать так же, как и элементы списка.
Следуя более старой спецификации, в Chrome and Safari существует пользовательский псевдо-элемент ::-webkit-details-marker
, с помощью которого можно стилизовать маркер.
Для кроссбраузерной стилизации маркера, чтобы скрыть дефолтный и добавить кастомный, необходимо для Firefox установить элементу summary {display: block;}, а для
Chrome и Safari's установить ::-webkit-details-marker {display: none;}
. После этого дефолтный маркер будет скрыт, после чего можно установить свой маркер любым доступным способом стилизации. В примере ниже с помощью псевдоэлементов маркер возвращается обратно.
<details> <summary>Some details</summary> <p>More info about the details.</p> </details>
summary { display: block; } summary::-webkit-details-marker { display: none; } summary::before { content: '\25B6'; padding-right: 0.5em; } details[open] > summary::before { content: '\25BC'; }
{{ EmbedLiveSample('Примеры_стилизации') }}
Specification | Status | Comment |
---|---|---|
{{SpecName('HTML WHATWG', 'forms.html#the-details-element', '<details>')}} | {{Spec2('HTML WHATWG')}} | |
{{SpecName('HTML5.1', 'semantics.html#the-details-element', '<details>')}} | {{Spec2('HTML5.1')}} | Initial definition |
{{Compat("html.elements.details")}}