// html
<div class="accordion-container">
<input type="checkbox" id="chkbox-1" class="chkbox" />
<label class="accordion-title" for="chkbox-1">...</label>
<div class="accordion-content">
<div>
<p class="mb-3">...</p>
<p class="mb-3">...</p>
<p>...</p>
</div>
</div>
</div>
// css
*,
*::before,
*::after {
box-sizing: border-box;
}
.accordion-list {
max-width: 640px;
margin: 0 auto;
padding: 0.25rem;
}
.chkbox {
display: none;
}
.chkbox:checked ~ .accordion-title::after {
content: '\F2EA';
}
.chkbox:checked ~ .accordion-content {
grid-template-rows: 1fr;
}
.accordion-title {
display: flex;
justify-content: space-between;
align-items: center;
padding: 1rem 0 1rem 0;
font-weight: bold;
font-size: 1.2rem;
cursor: pointer;
}
.accordion-title::after {
font-family: bootstrap-icons;
content: '\F4FE';
}
.accordion-content {
display: grid;
grid-template-rows: 0fr;
transition: 0.4s ease-in-out;
}
.accordion-content > div {
overflow: hidden;
}
.accordion-content p {
margin: 0;
}
p.mb-3 {
margin-bottom: 1rem;
}
Demo