JSFiddle - React, Tailwind, and code Playground

HTML

<section class="faq">
  <h1 class="title">FAQ</h1>
  <ul>
    <li>
      <div class="question">如何辨理退換貨</div>
      <div class="answer">請參考退貨服務業面</div>
    </li>
    <li>
      <div class="question">退貨方式與退款時間</div>
      <div class="answer">約7-8個工作天完成退款作業</div>
    </li>
    <li>
      <div class="question">未退回的退款,是否可直接折抵新訂單?</div>
      <div class="answer">很抱歉,重新訂購時無法接於新訂單扣抵</div>

    </li>
    <li>
      <div class="question">發票遺失是否仍能辦理退換貨</div>
      <div class="answer">很抱歉,需要有發票才能辦理退換貨</div>
    </li>
  </ul>
</section>

CSS

* {
  box-sizing: border-box;
}

.title {
  font-size: 36px;
  text-align: center;
  padding: 20px 0;
  border-bottom: 1px solid #000;
  margin-bottom: 20px;
  font-weight: bold;
}

li {
  max-width: 550px;
  margin: 0 auto;
  font-size: 24px;
}

li + li {
  font-size: 24px;
}

.question {
  padding: 0 50px 0 10px;
  position: relative;
  color: #4fbe84;
  cursor: pointer;
}

.question:hover {
  background-color: #cafff4;
}

.question::before {
  content: 'Q: ';
  font-weight: bold;
}

.question::after {
  content: "+";
  position: absolute;
  top: -5px;
  right: 10px;
  font-size: 36px;
  width: fit-content;
  transition: transform 0.5s linear;
}

.answer {
  max-height: 0;
  overflow: hidden;
  background-color: #eafff4;
  padding: 0 10px;
  visibility: hidden;
  transition: max-height 0.3s ease, visibility 0s 0.3s;
}

li.open .answer {
  max-height: 200px; /* Enough space to display the answer */
  visibility: visible;
  transition: max-height 0.3s ease, visibility 0s 0s;
}

li.open .question::after {
  transform: rotate(405deg);
}
A

JavaScript

const questions = document.querySelectorAll('.question');

for (let question of questions) {
  question.onclick = toggleOpen;
}

function toggleOpen() {
  const list = event.target.closest('li');
  const answer = list.querySelector('.answer');
  if (list.className.includes('open')) {
    answer.classList.remove('slide-down');
    answer.classList.add('slide-up');
    list.classList.remove('open')
  } else {
    answer.classList.remove('slide-up');
    answer.classList.add('slide-down');
    list.classList.add('open');
  }
}