Кратко
Скопировано: — псевдоэлемент, представляющий содержимое элемента <details> без его заголовка <summary>. Позволяет отдельно стилизовать и анимировать раскрывающуюся часть.
Пример
Скопировано
<details> <summary>Подробнее</summary> <p>Контент, который можно стилизовать через ::details-content.</p></details>
<details>
<summary>Подробнее</summary>
<p>Контент, который можно стилизовать через ::details-content.</p>
</details>
/* Применяем стили только если поддерживается селектор */@supports selector(::details-content) { details::details-content { padding: 12px 16px; background: #111216; border-radius: 0 0 12px 12px; opacity: 0; transform: translateY(-4px); transition: opacity .2s ease, transform .2s ease; } details[open]::details-content { opacity: 1; transform: translateY(0); }}
/* Применяем стили только если поддерживается селектор */
@supports selector(::details-content) {
details::details-content {
padding: 12px 16px;
background: #111216;
border-radius: 0 0 12px 12px;
opacity: 0;
transform: translateY(-4px);
transition: opacity .2s ease, transform .2s ease;
}
details[open]::details-content {
opacity: 1;
transform: translateY(0);
}
}
Как пишется
СкопированоСинтаксис простой:
details::details-content { /* стили */ }
details::details-content { /* стили */ }
Псевдоэлемент существует только у <details>. Удобно оборачивать стили в @supports selector, чтобы избежать неожиданных эффектов в неподдерживающих браузерах.
Как понять
СкопированоРаньше, чтобы отдельно стилизовать «контент без заголовка», приходилось добавлять обёртки в разметку или использовать селекторы по соседям/детям. : даёт прямую точку стилизации для раскрывающейся части и упрощает анимации появления/исчезновения.
Подсказки
Скопировано💡 Для плавного появления используйте сочетание opacity и transform; геометрические свойства (height) анимируются хуже.
💡 Добавляйте скругления отдельно для контента (нижние углы), а у <summary> — верхние, чтобы визуально объединить блоки.
💡 Обязательно тестируйте в целевых браузерах; при отсутствии поддержки используйте неблокирующий фоллбек.
- Chrome 131, поддерживается
- Edge 131, поддерживается
- Firefox, не поддерживается
- Safari 18.4, поддерживается