【コピペOK】便利すぎ!Detailsタグでアコーディオンメニューをつくる方法

コーディングにおける「Detailsタグ」をご存知でしょうか。
「Detailsタグ」を使うと、アコーディオンメニュー実装の際、大幅にコードを短くできます。

喜ぶ人

Detailタグを使えば、もはやCSSすらいらないよ!

とまで言われるほどです。
(本記事ではCSSを使ってますが)

そんなDetailsタグを使ってシンプルなアコーディオンメニューを作成しました。

よければコピペでお使い下さい。

目次

Detailsアコーディオンメニュー

レスポンシブ対応となっております。

PCとスマホ両方でご確認ください。

完成形はこちら

See the Pen Details-accordion by yusuke-morioka (@yusuke-morioka) on CodePen.

コードはこちら

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="css/style.css" media="screen">
    <title>Details-Accordion</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
    <link href="https://use.fontawesome.com/releases/v5.6.1/css/all.css" rel="stylesheet">
</head>

<body>

    <details>
        <summary>Menu1</summary>
        <div class="details-content">
            <p>質問の回答、質問の回答</p>
        </div>
    </details>

    <details>
        <summary>Menu2</summary>
        <div class="details-content">
            <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト
            </p>
        </div>
    </details>

    <details>
        <summary>Menu3</summary>
        <div class="details-content">
            <p>質問の回答、質問の回答</p>
            <p>質問の回答、質問の回答</p>
            <p>質問の回答、質問の回答</p>
        </div>
    </details>

    <details>
        <summary>Menu4</summary>
        <div class="details-content">
            <p>テキストテキストテキストテキストテキストテキスト</p>
        </div>
    </details>


</body>

</html>
@charset "UTF-8";
summary {
    width: 60%;
    margin: 0 auto 5px;
    padding: 10px;
    display: flex;
    justify-content: space-between;
    background-color: #eee;
    cursor: pointer;
    transition: 0.2s;
}
summary::after {
    font-family: "Font Awesome 5 Free";
    content: "\f0d7";
    font-weight: 900;
    display: flex;
    align-items: center;
    transition: all 0.3s;
}

.details-content {
    width: 60%;
    margin: 0 auto;
}
.details-content p {
    width: 95%;
}

details[open] summary:after {
    transform: rotate(180deg);
}

details[open] .details-content {
    animation: fadeIn 0.3s ease;
}
@keyframes fadeIn {
    0% {
        opacity: 0;
        transform: translateY(-10px);
    }
    100% {
        opacity: 1;
    }
}

@media screen and (max-width: 960px) {
    summary {
        width: 90%;
    }
    .details-content {
        width: 90%;
    }
    .details-content p {
        margin: 10px auto 15px;
    }
}
あわせて読みたい
【CSSのみ】コピペで簡単!シンプルなアコーディオンメニューの作り方 シンプルで使いやすく、どんなサイトにも使えそうなアコーディオンメニューを作成しました。 色を変えるなり角丸にするなり、色々変えてお使いください。 もちろんレス...
あわせて読みたい
【コピペOK】レスポンシブ対応!ドロップダウンメニューの作り方 画像のようなおしゃれでシンプル、かつレスポンシブに対応しているドロップダウンメニューです。 てっとり早く実装したい方は、ぜひコピペしてご自由にお使い下さい。 ...
あわせて読みたい
【VS Code】Sassをインデントする最も簡単な方法 Sassのコードのインデントを最もてっとり早く行う方法です。 行間や配置が気になる几帳面なコーダーの皆さんは、ぜひお試し下さい。 Visual Studio Codeを使う方向けの...
あわせて読みたい
コーディングしてると眠くなるのは普通です【原因と対処法】 コーディング中やたら眠くなる。他のことしてると目が覚めるのに、コーディングやり始めると数分であくびばっか出てくる。おれコーディングに適した人じゃないのかも。 ...
あわせて読みたい
今後、コーディングはなくなる?←可能性は大です 今コーディング勉強中なんだけど、ネットとかSNSで「オワコン」だの「今後なくなる」だの、散々言われてて不安。コーディングがんばっても、今後の時代を考えると意味な...
目次