Тесты Пообщаться с GPT Протестировать код
Программирование Аналитика Дизайн Маркетинг Управление проектами
09 Фев 2024
2 мин
2465

Как добавить на сайт раздел FAQ с раскрывающимися ответами

Пройдите тест, узнайте какой профессии подходите
Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Узнайте, как легко создать привлекательный и функциональный раздел FAQ с раскрывающимися ответами с помощью HTML, CSS и JavaScript!

Создание раздела FAQ (Frequently Asked Questions) с раскрывающимися ответами является отличным способом предоставления информации посетителям вашего сайта. В этой статье мы рассмотрим, как создать такой раздел с использованием HTML, CSS и JavaScript.

Структура HTML

Для начала создадим структуру нашего раздела FAQ с помощью HTML. В этом примере мы будем использовать теги <details> и <summary>, которые предоставляют нативную поддержку раскрывающихся элементов в HTML5.

<section class="faq">
  <details>
    <summary>Вопрос 1: Какая-то информация?</summary>
    <p>Ответ на вопрос 1: Это информация о чем-то важном.</p>
  </details>
  <details>
    <summary>Вопрос 2: Какая-то другая информация?</summary>
    <p>Ответ на вопрос 2: Это информация о чем-то другом важном.</p>
  </details>
  <!-- добавьте больше вопросов и ответов по аналогии -->
</section>

Стилизация с помощью CSS

Теперь добавим стили к нашему разделу FAQ с помощью CSS, чтобы сделать его более привлекательным визуально. В следующем примере мы зададим стили для элементов <details> и <summary>:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
.faq {
  width: 80%;
  margin: 0 auto;
}
 
details {
  background-color: #f9f9f9;
  border: 1px solid #ddd;
  border-radius: 4px;
  padding: 0.5em;
  margin-bottom: 1em;
}
 
summary {
  font-weight: bold;
  cursor: pointer;
}
 
details[open] {
  background-color: #eef;
}

😉 Обратите внимание, что вы можете настроить эти стили по своему усмотрению или в соответствии с дизайном вашего сайта.

Добавление интерактивности с помощью JavaScript

Наконец, добавим немного JavaScript для того, чтобы при открытии одного вопроса другие автоматически закрывались, создавая аккордеонный эффект:

1
2
3
4
5
6
7
8
9
10
11
document.querySelectorAll('.faq details').forEach((item) =&gt; {
  item.addEventListener('toggle', (event) =&gt; {
    if (event.target.open) {
      document.querySelectorAll('.faq details').forEach((otherItem) =&gt; {
        if (otherItem !== event.target) {
          otherItem.removeAttribute('open');
        }
      });
    }
  });
});

Теперь у вас есть функциональный раздел FAQ с раскрывающимися ответами! 🎉

Если вы хотите продолжить изучение веб-разработки и узнать больше о создании сайтов, рекомендую посетить .

Добавить комментарий