HTML/CSS / LESSON 03 / HT03

HTML/CSS:リンクと画像

1学習の目的

2基礎解説

やりたいこと書き方備考
リンクを作る<a href="URL">文字</a>href が行き先
画像を載せる<img src="画像.jpg" alt="説明">閉じタグ不要
別タブで開くtarget="_blank" rel="noopener"外部サイト向け
ページ内リンクhref="#id名"同じページ内へ移動
✅ 覚えるべき重要ポイント
  1. a は anchor(錨)の略href に行き先を書く。同じフォルダのファイルなら href="about.html"、外部サイトなら https:// から書く。
  2. imgalt は必須。画像が表示できないときに代わりに出る文字であり、目の見えない人が読み上げソフトで聞く文章でもある。省略してはいけない。
  3. 別タブで開くなら rel="noopener" も一緒に書く。これが無いと、リンク先のページから元のページを操作できてしまう安全上の問題がある。
  4. ページ内リンクは #id の組み合わせhref="#price"id="price" が対応し、その位置までスクロールする。
  5. メールや電話にもリンクできる。href="mailto:…" でメール作成画面が、href="tel:…" でスマホなら発信画面が開く。

現場使用例:ナビゲーションメニュー、商品画像、外部サイトへの参照、目次から本文へのジャンプ、問い合わせ先の電話番号。

<!-- 同じフォルダの別ページへ -->
<a href="about.html">会社概要</a>

<!-- 外部サイトへ(別タブで開く) -->
<a href="https://example.com" target="_blank" rel="noopener">
  公式サイト
</a>

<!-- 画像(alt は必ず書く) -->
<img src="photo.jpg" alt="店内の様子" width="600">

<!-- 画像に説明を付ける -->
<figure>
  <img src="menu.jpg" alt="人気のパンケーキ">
  <figcaption>当店一番人気のパンケーキ</figcaption>
</figure>

<!-- ページ内リンク -->
<a href="#price">料金を見る</a>
...
<h2 id="price">料金</h2>

<!-- メール・電話 -->
<a href="mailto:info@example.com">お問い合わせ</a>
<a href="tel:0312345678">03-1234-5678</a>

<!-- 画像をリンクにする -->
<a href="product.html">
  <img src="thumb.jpg" alt="商品の写真">
</a>

3基本ドリル(10問)

HT03-D01 「公式サイト」という文字から https://example.com へのリンクを作るHTMLを書け。 コーディング★☆☆無料
期待される結果

a の href と中身が正しい

ヒント

<a href="URL">文字</a> の形。

模範解答
<a href="https://example.com">公式サイト</a>
解説

href が行き先、タグで囲んだ文字がクリックできる部分。リンクは既定で青色+下線になる。

HT03-D02 <img>alt 属性の役割はどれか。
A. 画像の大きさ B. 画像が表示できないときの代替文字・読み上げ用の説明 C. 画像の場所 D. 装飾
選択★☆☆無料
期待される結果

解答 == B

ヒント

alternative(代替)の略。

模範解答
B
解説

alt は目の見えない人にとっての「画像そのもの」。読み上げソフトはこの文字を読む。省略すると情報が伝わらない。

HT03-D03 photo.jpg という画像を、alt に「店内の様子」と指定して表示するHTMLを書け。 コーディング★☆☆無料
期待される結果

img の src と alt が正しい

ヒント

<img src="…" alt="…"> と書く。閉じタグは不要。

模範解答
<img src="photo.jpg" alt="店内の様子">
解説

img は閉じタグを書かない。src で画像の場所を、alt で内容の説明を指定する。

HT03-D04 リンクの行き先を指定する属性を補ってコードを完成させよ。 穴埋め★☆☆無料
コード
<a ____="contact.html">お問い合わせ</a>
期待される結果

href が contact.html

ヒント

hypertext reference の略。4文字。

模範解答
href
解説

href が無いとリンクとして機能しない。クリックしても何も起きない、ただの文字になってしまう。

HT03-D05 外部サイトへのリンクを別タブで開くとき、target="_blank" と一緒に書くべき属性はどれか。
A. rel="noopener" B. class="link" C. id="external" D. 何も要らない
選択★☆☆無料
期待される結果

解答 == A

ヒント

安全上の理由で推奨されている属性。

模範解答
A
解説

これが無いと、リンク先から元のページを操作できてしまうという脆弱性がある。外部リンクには必ず付ける習慣を持つ。

HT03-D06 外部サイト https://example.com へのリンクを、別タブで開くように安全な形で書け(文字は「詳細はこちら」)。 コーディング★★☆広告解放
期待される結果

target と rel が正しい

ヒント

target="_blank" と rel="noopener" の両方を書く。

模範解答
<a href="https://example.com" target="_blank" rel="noopener">詳細はこちら</a>
解説

外部リンクの標準形。自サイト内のリンクは同じタブで開き、外部サイトは別タブで開くのが一般的な使い分け。

HT03-D07 ページ内リンクの飛び先を指定するコードを完成させよ。 穴埋め★★☆広告解放
コード
<a href="#price">料金へ</a>
<h2 ____="price">料金</h2>
期待される結果

h2 の id が price

ヒント

要素に固有の名前を付ける属性。2文字。

模範解答
id
解説

href の # とid名が対応するhref="#price" なら id="price" の位置へ移動する。

HT03-D08 同じフォルダにある about.html へリンクするとき、正しい書き方はどれか。
A. href="https://about.html" B. href="about.html" C. href="/about" D. href="about"
選択★★☆広告解放
期待される結果

解答 == B

ヒント

同じ場所にあるファイルは、ファイル名だけで指定できる。

模範解答
B
解説

同じフォルダならファイル名だけでよい。これを相対パスと呼ぶ。https:// から書くのは外部サイトの場合。

HT03-D09 画像 menu.jpg(alt「パンケーキ」)に「当店一番人気」という説明文を付けたHTMLを書け(figure と figcaption を使う)。 コーディング★★☆広告解放
期待される結果

figure内のimgとfigcaptionが正しい

ヒント

<figure> の中に img と figcaption を入れる。

模範解答
<figure>
  <img src="menu.jpg" alt="パンケーキ">
  <figcaption>当店一番人気</figcaption>
</figure>
解説

figure は「図表」を表すタグ。画像と説明文をひとまとまりとして扱えるので、単に img と p を並べるより意味が明確になる。

HT03-D10 メールアドレス info@example.com へのリンクと、電話番号 03-1234-5678 へのリンク(tel:0312345678)を並べたHTMLを書け。 コーディング★★☆広告解放
期待される結果

mailto と tel のリンクが正しい

ヒント

href="mailto:…" と href="tel:…" を使う。tel はハイフンを除いて書く。

模範解答
<a href="mailto:info@example.com">お問い合わせ</a>
<a href="tel:0312345678">03-1234-5678</a>
解説

スマホで tel リンクをタップすると発信画面が開く。店舗サイトでは必須の機能で、電話番号をただの文字にしておくのは機会損失になる。

4実践シナリオ(5問)

HT03-S01 【ナビゲーション】3つのリンク(「ホーム」→index.html、「サービス」→service.html、「お問い合わせ」→contact.html)を並べたHTMLを書け。 コーディング★★☆広告解放
期待される結果

a が3個、それぞれの href が正しい

ヒント

同じフォルダのファイルなのでファイル名だけでよい。

模範解答
<a href="index.html">ホーム</a>
<a href="service.html">サービス</a>
<a href="contact.html">お問い合わせ</a>
解説

これがナビゲーションメニューの中身。実際には nav タグで囲み(HT05)、CSSで横並びにする(HT13)。

HT03-S02 【画像リンク】商品画像 product.jpg(alt「ノートPC」)を、detail.html へのリンクにするHTMLを書け。 コーディング★★☆広告解放
期待される結果

a の中に img がある

ヒント

a タグで img を囲む。画像全体がクリックできるようになる。

模範解答
<a href="detail.html">
  <img src="product.jpg" alt="ノートPC">
</a>
解説

a は文字だけでなく画像も囲める。ECサイトの商品一覧では、この形が標準になっている。

HT03-S03 【目次とジャンプ】ページ上部に「料金へ」「アクセスへ」の2つのページ内リンクを置き、下に h2「料金」(id=price)と h2「アクセス」(id=access)を配置するHTMLを書け。 コーディング★★☆広告解放
期待される結果

a が2個、h2 の id が正しい

ヒント

href="#price" と id="price" を対応させる。

模範解答
<a href="#price">料金へ</a>
<a href="#access">アクセスへ</a>

<h2 id="price">料金</h2>
<p>基本プラン 月額5,000円</p>

<h2 id="access">アクセス</h2>
<p>東京都渋谷区1-2-3</p>
解説

長いページでは目次が有効。クリックすると該当箇所までスクロールするので、読者が探す手間が省ける。

HT03-S04 【商品カード】h3「ノートPC」、画像(pc.jpg / alt「ノートPCの外観」)、段落「128,000円」、詳細ページ(pc.html)へのリンク「詳しく見る」を組み合わせたHTMLを書け。 コーディング★★★広告解放
期待される結果

h3・img・p・a がそれぞれ正しい

ヒント

見出し→画像→価格→リンク の順に並べる。

模範解答
<h3>ノートPC</h3>
<img src="pc.jpg" alt="ノートPCの外観">
<p>128,000円</p>
<a href="pc.html">詳しく見る</a>
解説

商品カードの最小構成。実際にはこれを div や article で囲み(HT05)、CSSで枠線や余白を付ける(HT11)。

HT03-S05 【外部リンクと内部リンクの使い分け】内部ページ(about.html)へのリンク「会社概要」と、外部サイト(https://example.com)へのリンク「参考サイト」を書け。外部だけ別タブで開くようにすること。 コーディング★★★広告解放
期待される結果

1つ目は target なし、2つ目は target と rel あり

ヒント

内部リンクには target を付けない。

模範解答
<a href="about.html">会社概要</a>
<a href="https://example.com" target="_blank" rel="noopener">参考サイト</a>
解説

自サイト内は同じタブ、外部は別タブ——これが一般的な使い分け。すべて別タブにするとタブが増えすぎて使いにくくなる。

5仕上げ課題

HT03-FINAL 【カフェの紹介ページ】リンクと画像を使って、カフェの紹介ページを作れ。

body の内容(この順序で)
① h1:ゼロカラカフェ
② ページ内リンク2つ:メニューへ(#menu)、アクセスへ(#access)
③ 画像:shop.jpg(alt:店内の様子
④ h2:メニューid="menu"
⑤ figure:画像 cake.jpg(alt:季節のケーキ)+ figcaption 季節限定のケーキ
⑥ h2:アクセスid="access"
⑦ 段落:電話リンク 03-1234-5678(tel:0312345678)
⑧ 段落:外部リンク 地図を見る(https://example.com/map、別タブ・安全な形で

要素の数:h1×1、h2×2、img×2、a×4、figure×1、figcaption×1
総合★★★広告解放
期待される結果

すべての要素・属性が一致

ヒント

ページ内リンクは href="#menu" と id="menu" を対応させる。外部リンクには target="_blank" rel="noopener" を両方付ける。a は②で2つ、⑦⑧で1つずつの計4つ。

模範解答
<h1>ゼロカラカフェ</h1>

<a href="#menu">メニューへ</a>
<a href="#access">アクセスへ</a>

<img src="shop.jpg" alt="店内の様子">

<h2 id="menu">メニュー</h2>

<figure>
  <img src="cake.jpg" alt="季節のケーキ">
  <figcaption>季節限定のケーキ</figcaption>
</figure>

<h2 id="access">アクセス</h2>

<p><a href="tel:0312345678">03-1234-5678</a></p>
<p><a href="https://example.com/map" target="_blank" rel="noopener">地図を見る</a></p>
解説

4種類のリンクが1ページに揃った。ページ内リンク(#menu)、電話リンク(tel:)、外部リンク(別タブ)——それぞれ行き先の性質が違い、書き方も変わる。「リンク」と一口に言っても、用途に応じた書き分けが必要だ。

alt="店内の様子"alt="季節のケーキ" にも注目してほしい。もしこれを alt="画像"alt="" と書いたら、目の見えない人にとってこのページは「見出しと電話番号だけのページ」になる。altは装飾ではなく、情報そのものだ。

外部リンクの rel="noopener" も忘れてはいけない。これが無いと、リンク先のページがJavaScriptで元のページを操作できてしまう。「別タブで開く」と決めた瞬間に、セットで書くと覚えておく。

次章ではリストと表を学ぶ。箇条書きと表組みが使えるようになると、情報の整理がぐっと楽になる。