A. マンガのコマのように、質問と答えを枠で囲んで吹き出し風にデザインしています!
A. 学習コンテンツ、雑学、子ども向け情報など、楽しく読みやすくしたいときに最適です!
HTML
<div class="accordion-manga">
<div class="accordion-item">
<button class="accordion-question">Q. このアコーディオンの特徴は?</button>
<div class="accordion-answer">
<p>A. マンガのコマのように、質問と答えを枠で囲んで吹き出し風にデザインしています!</p>
</div>
</div>
<div class="accordion-item">
<button class="accordion-question">Q. どんな場面に向いていますか?</button>
<div class="accordion-answer">
<p>A. 学習コンテンツ、雑学、子ども向け情報など、楽しく読みやすくしたいときに最適です!</p>
</div>
</div>
</div>
CSS
.accordion-manga {
max-width: 700px;
margin: 60px auto;
font-family: 'Kosugi Maru', sans-serif;
}
.accordion-item {
border: 3px solid #222;
border-radius: 8px;
margin-bottom: 24px;
background: #fff;
box-shadow: 4px 4px 0 #222;
overflow: hidden;
position: relative;
}
.accordion-question {
background: #ffe;
border: none;
width: 100%;
text-align: left;
padding: 16px 20px;
font-size: 18px;
font-weight: bold;
color: #222;
cursor: pointer;
position: relative;
}
.accordion-question::after {
content: '▼';
position: absolute;
right: 20px;
top: 50%;
transform: translateY(-50%);
font-size: 18px;
}
.accordion-question.active::after {
content: '▲';
}
.accordion-answer {
display: none;
padding: 16px 20px;
font-size: 16px;
color: #333;
line-height: 1.7;
background: #f0f0f0;
border-top: 2px dashed #999;
position: relative;
}
.accordion-answer::before {
content: 'A:';
font-weight: bold;
color: #555;
margin-right: 4px;
}
JavaScript
document.addEventListener('DOMContentLoaded', function () {
const questions = document.querySelectorAll('.accordion-manga .accordion-question');
questions.forEach((btn) => {
btn.addEventListener('click', () => {
btn.classList.toggle('active');
const answer = btn.nextElementSibling;
answer.style.display = answer.style.display === 'block' ? 'none' : 'block';
});
});
});