<details>
<summary>
ここをクリック
<span class="icon"></span>
</summary>
<div class="accordion_tree">
アコーディオンの中身を表示。
</div>
</details>
<details>
<summary>
ここをクリック
<span class="icon"></span>
</summary>
<div class="accordion_tree">
アコーディオンの中身を表示。
</div>
</details>
<details>
<summary>
ここをクリック
<span class="icon"></span>
</summary>
<div class="accordion_tree">
アコーディオンの中身を表示。
</div>
</details>
summary {
display: grid; /* デフォルトの三角形アイコンを削除 */
grid-template-columns: 1fr auto;
gap: 1em;
align-items: center;
background-color: #2eb7cf;
color: #fff;
padding-block: 15px;
padding-inline: 20px;
cursor: pointer;
&::details-marker {
/* Safariで表示されるデフォルトの三角形アイコンを削除 */
display: none;
}
}
/* ======================
アイコン用CSS
======================*/
details .icon {
display: block;
position: relative;
width: 24px;
margin-left: 6px;
flex-shrink: 0;
transform-origin: center 43%;
transition: 0.4s;
/* アイコンのバー */
&::before,
&::after {
content: "";
background-color: #fff;
display: block;
width: 100%;
height: 3px;
margin: auto;
position: absolute;
inset: 0;
transition: 0.4s;
}
&::after {
transform: rotate(90deg);
}
}
/* アコーディオンが開いた時のスタイル */
details[open] .icon {
transform: rotate(90deg);
&::before {
opacity: 0;
}
}
/* ======================
装飾用CSS
======================*/
body {
line-height: 1.7;
padding: 20px;
}
details + details {
margin-block-start: 10px;
}
/* アコーディオンの中身 */
.accordion_tree {
border: 1px solid #2eb7cf;
padding-block: 15px;
padding-inline: 20px;
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.