忍者CODE

ログイン

3
CSSのみでアコーディオンを実装しよう

PHPの問題

HTML_CSS

ログインして解答を見る
Googleでログイン Twitterでログイン
問題
CSSのみでアコーディオンを実装してみましょう。

また、要素をクリックするとアニメーションで
パカパカアコーディオンになるようにしましょう。

見本を参考に作成してください。
期待する画面
ログインして解答を見る
コードのアイコン

解答ソースコード

            <section>
  <input class="checkbox-input" type="checkbox" id="checkBox">
  <label class="checkbox-label" for="checkBox">ここを押下するとアコーディオンが開きます</label>
  <ul class="accordion-cat">
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
  </ul>
  <input class="checkbox-input" type="checkbox" id="checkBox2">
  <label class="checkbox-label checkbox-label--red" for="checkBox2">ここを押下するとアコーディオンが開きます</label>
  <ul class="accordion-cat">
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
  </ul>
  <input class="checkbox-input" type="checkbox" id="checkBox3">
  <label class="checkbox-label checkbox-label--green" for="checkBox3">ここを押下するとアコーディオンが開きます</label>
  <ul class="accordion-cat">
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
    <li>アコーディオンの内容が入ります。</li>
  </ul>
</section>
¥HTML¥
          
            section {
    display: inline-block;
}
.checkbox-input {
    display: none;
}
.checkbox-label {
    cursor: pointer;
    display: inline-block;
    padding: 16px;
    background-color: #0e6edf;
    color: #fff;
}
.checkbox-label--red {
    background-color: red;
}
.checkbox-label--green {
    background-color: green;
}
.checkbox-label::before {
    content: "▼";
    padding-right: 4px;
}
.checkbox-input:checked + .checkbox-label::before {
    content: "ー";
}
.accordion-cat {
  margin: 0 0 2px 0;
}
.accordion-cat li {
    max-height: 0;
    overflow-y: hidden;
    transition: all 0.5s;
    text-align: center;
}

.checkbox-input:checked + .checkbox-label + .accordion-cat > li {
    max-height: 46px;
    opacity: 1;
    padding: 10px;
    visibility: visible;
}
¥CSS¥
          
答えのアイコン

解説

CSSのみでのアコーディオン実装で肝なのは
チェックボックスを使用するということです。
inputがcheckdの時にコンテンツを出すといたって単純なことをやっております。

まず、inputとlabelを連動する為にはinputのid属性とlabelのfor属性を同じ名前にします。
その際にinputのチェックボックスは、display: none;で消しときましょう。
そして、開いた時のコンテンツにはデフォルト値として
max-height: 0;とoverflow-y: hidden;を付与しておきます。

こうしておく事で、視認できなくなり要素は隠れます。

そして、セレクタを上手く使用してinputにcheckdがついたら隠しておいた要素に高さをつけ見えるようにします。アニメーションについては、隠す要素のデフォルト値にtransition: all 0.5s;などすれば、アニメーションできます。
1.HTMLの宣言をしてみよう
続きの動画を見たい方は公式LINEから「HTML」と送信すると動画が見れます。

甲賀

なら実務レベルで使えるスキルを
体系的に学ぶことが可能です

Web制作学習は、決して楽ではありませんが
「正しい方向で」「コツコツ」と続ければ、
必ずスキルアップする事が可能です。

甲賀では、挫折せずに学習を継続するための
カリキュラム・サポート体制をご用意しています。

↓↓↓↓

ステップバイステップで
着実にスキルが身につくカリキュラム

  • step 01
    初心者でもよく分かる!
    Web制作の基礎の基礎
    • 1.知っておこうWeb制作に関する基礎知識の話

    • 2.HTMLの書き方や役割を基礎から学ぶマークアップ入門

    • 3.CSSで挫折しない為の基礎学習【超重要プロパティ】

    • 4.基礎を終えたらHTMLコーディングを鍛えよう(デザインから)

    • 5.初心者向けHTMLコーディング完全解説(STEP1総まとめ)

  • step 02
    真似して覚えるWeb制作
    (デザイン〜プログラミングまで)
    • 1.属性ってなに?などなどHTML,CSSの深堀り編

    • 2.デザイナーから直接学ぶ猫ちゃんサイトのデザイン解説

    • 3.鎧模写-YOROIMOSYA【銅の鎧】

    • 4.JavaScriptで学ぶプログラミングの基本のきほん【16項目】

  • step 03
    動きをつけたり、効率化!
    脱初心者を目指すためのスキルを学ぼう
    • 1.jQueryの基本的な使い方から応用まで【プラグイン解説あり】

    • 2.Web制作でCSSを簡単に書くためのSASS入門【小技あり】

    • 3.現場で使うCSS設計の考え方参考サイトを元に解説

    • 4.生のJavaScriptだけで英単語アプリを作ろう(音声読み上げ付き)

  • step 04
    ここまでくれば中級者!
    ちょこっと応用編のWeb制作
    • 1.JavaScriptの屋敷【鳳凰の間】

    • 2.JavaScriptで作るLINE風チャットボット

    • 3.コマンドラインとアプリ操作を同時に学べるGit【15選】

    • 4.EJSを使いコーディング力を中級者まで引き上げる

  • step 05
    実務で必須の制作スキル
    WordPressについて学ぶ
    • 1.鎧模写-YOROIMOSYA【銀の鎧】

    • 2.PHPを基礎から学びたい人向け14項目から学ぶ【入門】

    • 3.PHPで簡易的な掲示板を作ってみよう【コーディングあり】

    • 4.甘えを吹き飛ばす!WordPress開発

    • 5.WordPressで¥400,000の案件を徹底解説!

    • 6.WordPress有料テーマSnow Monkeyの解体書

甲賀を詳しく見る

プログラミングスキルが
一気に上がる!
有料級の解説動画19本
を今なら無料でGETできる!

忍者CODEの公式LINE登録後
LINE内にあるURLよりご覧になれます

  • プログラミング本気で学習してる方
  • もちろん完全無料で且つ手続き不要
  • 将来プログラミングで稼ぎたい方
  • 動画解説で真剣に学びたい方
スキルアップ動画をGET