HTML講座 / img・alt・画像サイズを指定する

HTMLに画像を入れるには、imgのsrcに画像の場所を指定します。altにはその画像が文脈の中で伝える情報を書き、widthとheightには画像の実寸に対応する値を指定すると、読み込み前に表示領域を確保しやすくなります。

画像を用意してimgで表示する

次の画像をクリックすると元ファイルを開けます。ファイルを保存し、編集するindex.htmlと同じフォルダーに置いてください。例のコードはHTMLファイルのbodyの中へ入れます。

<img src="html-image-sample-lake-tree-1600-v1.webp"
     alt="A tree on a small island in a lake, with mountains beyond"
     width="1600" height="900">

湖の小島に立つ木と、その奥に見える山々

保存して再読み込みすると、湖と木の画像が表示されます。imagesフォルダーに置いた場合はsrc="images/html-image-sample-lake-tree-1600-v1.webp"のように直します。img自体には終了タグはありません。画像をクリックできることはaで囲む別の機能であり、画像表示だけではリンクにはなりません。パスの考え方はリンクと相対パスで確認できます。

altに何を書くか

altは代替テキストです。画像が見えない場合にも、その画像がこの場所で伝える意味や機能を分かるようにします。次の例の英語の説明は、木、湖、山という画像の情報を表しています。日本語のページなら、その役割に合う日本語へ置き換えます。

<img src="html-image-sample-lake-tree-1600-v1.webp"
     alt="A tree on a small island in a lake, with mountains beyond"
     width="1600" height="900">

単に「画像」と書いたり、検索キーワードを並べたりしません。近くの内容を繰り返す純粋な装飾ならalt=""が適切な場合もありますが、属性を省くこととは違います。重要な図やグラフでは主な情報を伝え、詳しい内容は近くの本文や表でも説明します。判断に迷ったらW3C WAIの代替テキスト判断フローを参照します。

実寸と表示サイズを区別する

画像は1600×900ピクセルです。width="1600" height="900"は縦横比を伝えますが、画像のピクセル数やダウンロード容量を減らす指定ではありません。本文の幅に収める場合は次のCSSを使えます。

img {
  max-width: 100%;
  height: auto;
}

このCSSはhead内のstyleまたはリンクしたCSSファイルに書きます。max-width: 100%で親領域より広がらないようにし、height: autoで比率を保ちます。小さいファイルを配信したい場合は、別途縮小した画像とsrcset・sizes・pictureを検討します。表示上小さくしただけで転送量が減ったとは判断しません。

画像が表示されないとき

srcのファイル名と拡張子、HTMLから見たフォルダー位置を順に確認し、画像URLだけを直接開いてみます。相対パスならHTMLファイルを移動していないかも調べます。画像を戻した後は、比率が変形していないか、狭い画面でも横にはみ出さないかを確認してください。見えるキャプションを付けたい場合はfigureとfigcaptionを使えます。属性の詳細はMDNのimg要素にあります。

같은 카테고리의 다른 글
HTML講座 / テキストの意味を表すem・strong・引用・コード

HTML講座 / テキストの意味を表すem・strong・引用・コード

emとstrong、qとblockquote、abbr、code、kbdの違いを学びます。太字や斜体という見た目ではなく、文章中の役割に合わせて要素を選ぶ方法を説明します。

HTML講座 / table・tr・th・tdで表を作る

HTML講座 / table・tr・th・tdで表を作る

行と列を持つデータをHTMLの表で表す基本を学びます。見出しセルとデータセル、theadとtbody、横幅が広い表のスクロール方法も紹介します。

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTML講座 / HTMLとは何か、Webページでの役割を理解する

HTMLで文書の意味と構造を表す方法を、CSS・JavaScriptとの違いとともに学びます。実際にHTMLファイルを保存して、ブラウザーで確認する手順も紹介します。

HTML講座 / detailsとsummaryで開閉できる説明を作る

HTML講座 / detailsとsummaryで開閉できる説明を作る

JavaScriptなしで開閉する補足説明を作ります。open属性の真偽、分かりやすいsummaryの書き方、Tab・Enter・Spaceによる操作の確認方法も紹介します。

HTML講座 / タイトル・説明・言語・文字コードを設定する

HTML講座 / タイトル・説明・言語・文字コードを設定する

title、meta description、charset、viewportとhtmlのlangを整理します。タブと本文の違い、文字化けの調査、検索結果の説明が必ず採用されるわけではない点も学べます。

HTML講座 / ol・ul・dlと入れ子のリスト

HTML講座 / ol・ul・dlと入れ子のリスト

順序付きリスト、箇条書き、用語と説明のリストを使い分けます。番号の開始位置や逆順表示、リスト項目の中にサブリストを置く正しい構造も学びます。

HTML講座 / labelとinputを正しく関連付ける

HTML講座 / labelとinputを正しく関連付ける

labelのforとinputのidを対応させる方法を学びます。idと送信時のnameの違い、重複IDの問題、placeholderがラベルの代わりにならない理由も説明します。

HTML講座 / srcset・sizes・pictureでレスポンシブ画像を作る

HTML講座 / srcset・sizes・pictureでレスポンシブ画像を作る

同じ構図の解像度選択と、画面幅に応じた構図変更を区別して学びます。w記述子、ピクセル密度、currentSrcによる確認方法と、キャッシュが比較に与える影響も解説します。

HTML講座 / セマンティック要素でページの領域を分ける

HTML講座 / セマンティック要素でページの領域を分ける

header、nav、main、article、section、aside、footerの役割を学びます。見た目の配置と意味を区別し、複数のナビゲーションを識別する方法も紹介します。

HTML講座 / 見出しと段落を正しく使う

HTML講座 / 見出しと段落を正しく使う

h1〜h6で見出しの階層を表し、pで段落、brで段落内の改行を作る方法を学びます。文字サイズと文書構造を区別し、見出しの飛び級を修正する練習も行います。