はじめに
学習初期の方からの質問対応は、
「何が分からないのか」を一緒に整理する時間になることが多いです。
今回は、HTML / CSS 学習のかなり初期段階でよく出てくる、
aタグ・padding・リンク範囲に関する質問がありました。
どんな質問だったのか、どこでつまずきやすいのか、
そしてどのように回答したかを、備忘録としてまとめておきます。
今回あった質問の内容
質問は、Progate 道場レッスン(HTML & CSS 中級編)の
ヘッダーを作る課題に関するものでした。
内容を要約すると、
- ログインボタンの「文字」にカーソルを乗せるとポインターが変わる
- しかし、背景部分にカーソルを乗せてもポインターが変わらない
- 見本では、背景部分でもポインターが変わる
- aタグに display:block を指定しているが、期待通りにならない
というものでした。
学習者がどこでつまずいていたか
この質問でつまずいていたポイントは、
「高さ」と「幅」の認識のズレでした。
学習者は、
「aタグを block にすれば高さが出る」
と考えていましたが、実際には
- line-height: 65px が指定されており
- 上下方向(高さ)はすでにリンクとして成立している
状態でした。
問題だったのは上下ではなく、
左右方向(横幅)でした。
学習者がつまずいていたポイント
この質問でつまずいていたポイントは、
「高さ」と「幅」の認識のズレでした。
学習者は、
「aタグを block にすれば高さが出る」
と考えていましたが、実際には
- line-height: 65px が指定されており
- 上下方向(高さ)はすでにリンクとして成立している
状態でした。
問題だったのは上下ではなく、
左右方向(横幅)でした。
なぜ起きやすい勘違いなのか
学習初期では、
- 見た目(背景の広さ)
- 実際にクリックできる範囲
この2つが「同じもの」だと思いがちです。
今回のコードでは、
- 背景色や padding は div(.login)に付いている
- 実際のリンクは a タグだけ
という構造になっていました。
そのため、
「見た目はボタン全体なのに、リンクとして反応するのは文字だけ」
というズレが起きていました。
これはとてもよくある初期つまずきポイントです。
実際にどう説明・回答したか
回答では、いきなり「ここをこう直しましょう」とは伝えず、
- 観察自体は正しいこと
- 考え方の方向性も間違っていないこと
- ただし注目するポイントが少し違っていること
を順番に伝えるようにしました。
特に意識したのは、
「ボタン全体をリンクとして反応させたいとき、
その大きさをどの要素が持っているか?」
という視点です。
padding をどの要素に持たせるかによって、
リンクとして反応する範囲が変わることを
言葉で整理して伝えました。
教える側として意識したこと
今回の対応で意識したのは、次の点です。
- 質問者の言葉を勝手に言い換えない
- 「hoverが効いていない」など余計な表現を足さない
- 学習初期なので、開発者ツール前提の説明はしない
- 考え方の軸だけを少しずらす
学習初期では、
「考え方は合っているけど、注目点が違う」
というケースがとても多いです。
そこを否定せず、
視点だけをそっと修正することを意識しました。
まとめ
今回の質問は、
- aタグ
- padding
- display:block
- リンクとして反応する範囲
といった、HTML / CSS の基礎が一気に絡む、
とても良い質問でした。
学習初期では、
「高さ」と「幅」
「見た目」と「挙動」
が混ざりやすいので、同じような質問は今後も出てきそうです。