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講座 / divとspanはいつ使うのか

HTML講座 / divとspanはいつ使うのか

divとspanの内容モデルと使い分けを学びます。CSSのdisplayを変えてもHTMLの親子関係の規則は変わらないことや、意味のある要素を優先する基準も説明します。

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

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

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

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

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

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

HTML講座 / formの構造とGET・POSTによる送信

HTML講座 / formの構造とGET・POSTによる送信

action、method、nameの役割とGET・POSTの違いを学びます。FormDataと開発者ツールを使い、送信対象の値、入力検証、サーバー処理を分けて確認します。

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

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

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

HTML講座 / audio・video・iframeでメディアを埋め込む

HTML講座 / audio・video・iframeでメディアを埋め込む

音声、動画、外部文書の埋め込みを学びます。字幕ファイル、代替リンク、画面幅への対応と、ファイル形式や提供元の制限による読み込み失敗の確認方法も説明します。

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

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

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

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

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

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

HTML講座 / fieldset・legend・autocompleteでフォームを説明する

HTML講座 / fieldset・legend・autocompleteでフォームを説明する

関連する入力をfieldsetでまとめ、legendで質問を示す方法を学びます。ラジオグループを独立させるnameと、自動入力の目的を示すautocompleteの違いも解説します。

HTML講座 / required・文字数・範囲で入力値を検証する

HTML講座 / required・文字数・範囲で入力値を検証する

必須入力、文字数、数値の範囲と刻み、メール形式の制約を学びます。境界値を試し、ブラウザーの案内とサーバー側の検証を分けて考える方法も説明します。