ログイン
問題11

label要素を使ってクリックイベントを作ろう

実はCSSでも、inputタグとアニメーションをうまく使う事で JavaScriptのようにクリックをした際に動きを持たせることができます。 その方法について、実践的に学んでいきましょう!

アイコン画像

問題11:label要素を使ってクリックイベントを作ろう

クリックイベントのようにしてCSSのみで画像を大きくしてみよう!

見本動画を参考にして実装してください。

エディターのアイコンあらかじめエディタに書くコード

                <input type="checkbox" id="image" name="head">
<label for="image">クリックしてください</label>
<div class="img-area">
    <img src="https://ninjacode.work/assets/img/kv.png">
</div>
¥HTML¥
              
                .img-area {
    background-color: #000;
    display: inline-block;
}
.img-area img {
    width: 80%;
    display: block;
    margin: auto;
}
¥CSS¥
              

ブラウザのアイコン期待する画面


タグアイコン解答ソースコード

              <input type="checkbox" id="image" name="head">
<label for="image">クリックしてください</label>
<div class="img-area">
  <img src="https://ninjacode.work/assets/img/kv.png">
</div>
¥HTML¥
            
              .img-area {
    background-color: #000;
    display: inline-block;
}
.img-area img {
    width: 80%;
    display: block;
    margin: auto;
    transition: 1s;
}
input[type="checkbox"] {
    display: none;
}
input[type="checkbox"]:checked ~ .img-area img {
    width: 100%;
}
¥CSS¥
            

コメントのアイコン解説

まず、jsのクリックイベントのようなものはinputタグの
チェックボックスにて行います。

:checkedがついたらアニメーションをつけながら
width: 80% → 100%に幅を大きくしましょう。

また、inputとlabelタグはセットで使うことで
inputタグをdisplay: none;してもcheckedが付く状態にできますので
覚えて置きましょう。
ログインして解答を見る

コメントのアイコン補足

inputタグをCSSで指定する際は、角括弧を使用してtype属性まで記述しなければいけません。inputだけでは動作しませんので、気を付けましょう!

クリックされたときのスタイルの指定方法はこのように記述しました。
input[type="checkbox"]:checked ~ .img-area img

「~」でセレクタを指定すると同階層の後ろに並ぶ要素を指定することができます。
つまり今回で言うと、checkboxがチェックされている時のimg-area要素内のimgということになります。
完了にする!
twitterのアイコン
活動記録をTweetする
1.HTMLの宣言をしてみよう
続きの動画を見たい方は公式LINEから「HTML」と送信すると動画が見れます。
HTML_CSSを学ぶなら現役エンジニア監修「甲賀コース」
LINEの友達追加でお役立ち動画をGET!!

閉じる