пн-пт 9:00 — 18:00
г. Тула, ул. Некрасова, 7, оф. 315
866
Время чтения: 11 минут
Когда на странице много информации — описания товаров, характеристики, FAQ, условия доставки — пользователи теряются. Решение простое: аккордеон. Один клик — и нужный блок раскрывается, остальные остаются компактными. По данным Яндекс.Метрики, сайты с аккордеонами увеличивают время на странице на 38%, а конверсию в заявки — на 22%. В 2025 году аккордеон — обязательный элемент UX. Покажем, как сделать вертикальный аккордеон с плавной анимацией, стрелками, hover-эффектами и адаптивностью. Только HTML, CSS и немного JS. Полный код, демо, вариации и чек-лист.
Каждый пункт — это блок .element с заголовком .top и содержимым .content. По умолчанию .content скрыт (height: 0, overflow: hidden). При клике добавляется класс .is-open — высота становится auto, включается padding и плавный transition. Стрелки из ::before и ::after поворачиваются. Hover меняет цвет фона.
Вы будете получать статьи по нашим направлениям, советы и кейсы предпринимателей
<div class="accordion">
<div class="accordion__item">
<div class="accordion__header">Оглавление 1</div>
<div class="accordion__content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit alias quaerat, possimus reprehenderit dolor molestiae.</p>
</div>
</div>
<div class="accordion__item">
<div class="accordion__header">Оглавление 2</div>
<div class="accordion__content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit alias quaerat, possimus reprehenderit dolor molestiae. Lorem ipsum dolor sit amet...</p>
</div>
</div>
<div class="accordion__item">
<div class="accordion__header">Оглавление 3</div>
<div class="accordion__content">
<p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit alias quaerat, possimus reprehenderit dolor molestiae.</p>
</div>
</div>
</div>
.accordion {
max-width: 700px;
margin: 2rem auto;
font-family: 'Helvetica Neue', sans-serif;
}
.accordion__item {
border: 1px solid #ffd8a8;
border-radius: 8px;
margin-bottom: 8px;
overflow: hidden;
}
.accordion__header {
position: relative;
padding: 16px 48px 16px 20px;
background: #ffcd81;
color: #1a1a1a;
font-weight: 600;
font-size: 18px;
cursor: pointer;
transition: background 0.3s ease;
user-select: none;
}
.accordion__header::before,
.accordion__header::after {
content: '';
position: absolute;
top: 50%;
right: 20px;
width: 10px;
height: 2px;
background: #1a1a1a;
transition: transform 0.3s ease;
}
.accordion__header::before {
transform: translateY(-50%) rotate(40deg);
}
.accordion__header::after {
transform: translateY(-50%) rotate(-40deg);
}
.accordion__content {
height: 0;
padding: 0 20px;
background: #fff;
color: #333;
font-size: 16px;
line-height: 1.6;
overflow: hidden;
transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}
.accordion__item:hover .accordion__header,
.accordion__item.is-open .accordion__header {
background: #f7b450;
}
.accordion__item.is-open .accordion__content {
height: auto;
padding: 16px 20px;
}
.accordion__item.is-open .accordion__header::before {
transform: translateY(-50%) rotate(-40deg);
}
.accordion__item.is-open .accordion__header::after {
transform: translateY(-50%) rotate(40deg);
}
/* Адаптивность */
@media (max-width: 480px) {
.accordion {
max-width: 100%;
padding: 0 1rem;
}
.accordion__header {
font-size: 16px;
padding: 14px 40px 14px 16px;
}
.accordion__content {
font-size: 15px;
}
}
document.querySelectorAll('.accordion__item').forEach(item => {
item.addEventListener('click', () => {
const isOpen = item.classList.contains('is-open');
// Закрываем все
document.querySelectorAll('.accordion__item').forEach(el => {
el.classList.remove('is-open');
});
// Открываем текущий, если не был открыт
if (!isOpen) {
item.classList.add('is-open');
}
});
});
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit alias quaerat, possimus reprehenderit dolor molestiae. Lorem ipsum dolor sit amet...
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit alias quaerat, possimus reprehenderit dolor molestiae.
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Fugit alias quaerat, possimus reprehenderit dolor molestiae.
| Стиль | Цвет | Когда использовать |
|---|---|---|
| Оранжевый | #ffcd81 | Товары, акции |
| Синий | #4a90e2 | Услуги, B2B |
| Серый | #e0e0e0 | FAQ, документы |
Да. Уберите закрытие других блоков в JS.
Можно с <details> и <summary>, но без кастомных стрелок и анимации.
Расскажем как написать анимированный индикатор для пунктов меню на сайте. Так портал станет более интерактивным и привлекательным для пользователей.
В данном уроке будем стилизовать текст для объявлений об акции. Необходимо сделать так, чтобы наше объявление привлекло потенциальных покупателей
Популярность нейросетей в 2025 году набирает обороты. Нет, они не заменяют полноценных специалистов. Зато существенно упрощают и ускоряют работу тех же копирайтеров, сеошников и дизайнеров.
Сегодня мы расскажем, какие нейросети можно использовать в работе, разберем их функционал и приведем примеры генерации.
*Условия акции: получить приз можно после заключения договора и реализации заказанной услуги.