Атрибут style тега <details>
Описание
Атрибут style позволяет задавать CSS-стили непосредственно для элемента <details> и его содержимого. Эти стили применяются только к конкретному элементу и имеют высокий приоритет.
<details style="border: 1px solid #ddd; border-radius: 5px; padding: 10px; margin-bottom: 15px;">
<summary style="font-weight: bold; cursor: pointer;">Стилизованный блок</summary>
<p style="color: #333; margin-top: 10px;">Этот блок имеет индивидуальное оформление.</p>
</details>
Стилизация состояния open/closed:
<details style="transition: all 0.3s ease;">
<summary>Анимированный блок</summary>
<p style="max-height: 0; overflow: hidden; transition: max-height 0.3s ease;">
Контент с плавным раскрытием
</p>
</details>
<script>
// Динамическое добавление стилей при раскрытии
document.querySelector('details').addEventListener('toggle', function() {
if (this.open) {
this.querySelector('p').style.maxHeight = '1000px';
} else {
this.querySelector('p').style.maxHeight = '0';
}
});
</script>
Лучшие практики:
- Используйте для разовых стилевых правок
- Для сложного оформления выносите стили в CSS-классы
- Сохраняйте стандартное поведение элемента
- Тестируйте на разных устройствах
- Избегайте !important в inline-стилях
Ограничения:
- Не поддерживает псевдоклассы (:hover, :focus)
- Нет возможности использовать медиа-запросы
- Усложняет поддержку кода
- Увеличивает размер HTML-документа
Примечание: Для production-среды рекомендуется выносить стили во внешние CSS-файлы. Inline-стили стоит использовать только для динамически генерируемых стилей или быстрого прототипирования.