imgタグの使い方|HTML画像表示の書き方・alt属性・レスポンシブ対応

この記事でわかること

  • <img>タグで画像を表示する基本の書き方と、終了タグ不要の自己終了タグである理由
  • src・alt・width・height・loadingなど主要属性の役割と、それぞれの正しい指定方法
  • SEO・アクセシビリティに効くalt属性の書き方(良い例・悪い例)
  • レスポンシブ画像(max-width・pictureタグ・srcset)でスマホ表示を崩さない実装
  • 表示速度を上げる遅延読み込み(loading=”lazy”)と、画像が表示されないときの確認手順

参考: MDN Web Docs「<img>: 画像埋め込み要素」(参照)/ Google「画像SEOのベストプラクティス」(参照

imgタグはHTMLで最もよく使うタグの一つです。まずは結論からつかみましょう。

結論を先に書きます

<img>タグは、HTMLで画像を表示するためのタグです。終了タグ(</img>)は不要な自己終了タグで、src属性で画像のパスを、alt属性で代替テキストを指定します。

押さえるべきポイントは多くありません。==alt属性・サイズ指定(width/height)・遅延読み込み(loading=”lazy”)の3点==を意識するだけで、SEO・アクセシビリティ・表示速度がまとめて向上します。

この記事の要点
  • 最小の書き方<img src="画像パス" alt="説明">。終了タグは書かない
  • alt属性は必ず設定。スクリーンリーダー・SEO・表示エラー時の三役を担う
  • width・height指定でレイアウトのズレ(CLS)を防ぎ、表示品質が安定
  • CSSで max-width:100%、必要に応じてpicture・srcsetでレスポンシブ対応

基本のコードはこの1行です。終了タグがないため、

<div>のように閉じる必要はありません。

<img src="photo.jpg" alt="富士山の写真">

この記事では、各属性の意味から実務で使うレスポンシブ実装までを順に整理します。HTMLタグ全体を見渡したいときはHTMLタグ一覧もあわせて確認してください。

目次

imgタグの主要な属性一覧

最初に、タグで使う主な属性を整理します。最低限srcとaltの2つがあれば画像は表示できますが、実務ではwidth・height・loadingまで指定するのが基本です。

属性必須度説明
src必須画像ファイルのパス(URL)
alt必須代替テキスト(画像の説明)
width推奨表示横幅(px または %)
height推奨表示高さ(px)
loading推奨遅延読み込みの設定
decoding任意画像のデコード方法

表のとおり、srcaltは省略しないのが原則です。次の章から、それぞれの書き方を具体的に見ていきます。

src属性|画像パスの書き方

src属性には、表示したい画像ファイルの場所を指定します。指定方法は相対パス絶対パス(フルURL)の2種類です。

相対パス(同じサーバー内の画像)

自サイト内の画像は、HTMLファイルから見た相対的な位置で指定します。階層の上り下りはフォルダ構成に合わせて書きます。

<!-- 同じフォルダ内 --> <img src="photo.jpg" alt="写真">

<!-- images フォルダ内 --> <img src="images/photo.jpg" alt="写真">

<!-- 1つ上のフォルダの images 内 --> <img src="../images/photo.jpg" alt="写真">

絶対パス(フルURL)

外部サイトの画像を表示する場合や、CDN上の画像を読み込む場合はフルURLで指定します。自サイト内の画像は相対パス、外部の画像はフルURLと覚えておくと迷いません。

<img src="https://example.com/images/photo.jpg" alt="写真">

パスの基本的な考え方は、リンクのhrefと共通します。リンクの書き方はaタグの使い方で詳しく解説しています。

alt属性|代替テキストの重要性

alt属性は画像の内容を説明する代替テキストです。見落とされがちですが、実は3つの重要な役割を担っています。

  1. アクセシビリティ:スクリーンリーダーがalt属性を読み上げ、視覚に障がいのある利用者へ画像の内容を伝える
  2. SEO:検索エンジンが画像の内容を理解する手がかりになり、画像検索からの流入につながる
  3. 表示エラー時の保険:画像が読み込めなかったとき、alt属性のテキストが代わりに表示される

つまりalt属性は、人にも検索エンジンにも、そして読み込み失敗時にも効くということです。alt属性は必ず設定するのが基本姿勢になります。

altテキストの書き方(良い例・悪い例)

altテキストは「画像に何が写っているか」を具体的に書きます。ファイル名そのままやimageといった中身のない記述は、設定していないのとほぼ同じです。

<!-- ○ 画像の内容を具体的に説明 --> <img src="tokyo-tower.jpg" alt="夜の東京タワー(東京都港区)">

<!-- × 説明がない・意味がない --> <img src="tokyo-tower.jpg" alt=""> <img src="tokyo-tower.jpg" alt="image"> <img src="tokyo-tower.jpg" alt="tokyo-tower.jpg">

装飾目的の画像は alt=”” にする

ロゴの背景・区切り線・飾りなど、コンテンツとして意味を持たない画像は、あえてalt属性を空(alt="")にします。空にすることで、スクリーンリーダーが不要な読み上げをスキップできます。

<!-- 装飾画像・区切り線など --> <img src="divider.png" alt="">

「意味のある画像は具体的に書く・装飾画像は空にする」と使い分けるのがポイントです。

width・height属性|サイズの指定

widthheightで、画像の表示サイズを指定します。指定しなくても画像は表示されますが、実務では指定するのが基本です。

<img src="photo.jpg" alt="写真" width="800" height="600">

width・height を指定する理由

理由はシンプルで、レイアウトのズレ(CLS:Cumulative Layout Shift)を防ぐためです。サイズを事前に伝えておくと、ブラウザは画像の読み込み前に表示領域を確保できます。これによりページ読み込み中のガクッとしたズレが起きにくくなり、GoogleのコアウェブバイタルというUX指標の改善にもつながります。

サイズは、実際の画像と同じ縦横比で指定するのが基本です。

<img src="hero.jpg" alt="トップ画像" width="1200" height="600">

レスポンシブ画像の実装

スマホ・タブレット・PCで画面幅が違っても画像が崩れないようにする工夫が、レスポンシブ対応です。方法は段階的に3つあります。

基本:CSSで横幅を100%にする

まずはこれだけで十分なケースが多いです。HTML側で実サイズを指定し、CSS側でmax-widthheightを調整します。

img {   max-width: 100%;   height: auto;   /* アスペクト比を保つ */ }

max-width: 100%で「親要素の幅を超えない」、height: autoで「縦横比を保つ」という意味になります。CSSの基本的な書き方はCSSとは?書き方の基本で解説しています。

pictureタグで画像を切り替える

画面サイズごとに別の画像ファイルを出し分けたいときはを使います。スマホには軽い画像、PCには大きい画像、といった切り替えが可能です。

<picture>   <!-- スマホ向け(600px以下) -->   <source media="(max-width: 600px)" srcset="photo-small.jpg">   <!-- タブレット向け(601〜1024px) -->   <source media="(max-width: 1024px)" srcset="photo-medium.jpg">   <!-- デフォルト(PC) -->   <img src="photo-large.jpg" alt="写真" width="1200" height="600"> </picture>

srcset属性で解像度を最適化

Retinaディスプレイなどの高解像度画面向けに、複数サイズの画像を用意して自動で出し分ける方法です。1xが標準解像度、2xが高解像度向けを表します。

<img   src="photo.jpg"   srcset="photo.jpg 1x, photo@2x.jpg 2x"   alt="写真"   width="400"   height="300" >

loading属性|遅延読み込み(Lazy Load)

loading="lazy"は、画像がスクロールして表示領域に近づいたときに読み込む設定です。最初に全画像を読み込まずに済むため、初期表示の高速化に効果があります。

<!-- ファーストビュー以外の画像に設定 --> <img src="photo.jpg" alt="写真" loading="lazy" width="800" height="600">

<!-- ファーストビューの画像は eager のまま(デフォルト) --> <img src="hero.jpg" alt="トップ画像" loading="eager" width="1200" height="600">

使い分けのコツは、最初に見える画像(ファーストビュー)には付けないことです。ファーストビューにlazyを付けると、かえって表示が遅れて見える場合があります。下の方にある画像にだけlazyを付けるのが基本です。

figureタグと組み合わせる

図表や写真にキャプション(説明文)を添えたいときは、

を組み合わせます。画像と説明文が意味的にひとまとまりだと、ブラウザや検索エンジンに伝えられます。

<figure>   <img src="chart.png" alt="2024年のWeb制作市場規模グラフ" width="800" height="400">   <figcaption>図1:2024年のWeb制作市場規模(出典:各種調査)</figcaption> </figure>

ほかのHTMLタグと同様、要素には役割があります。タグの組み合わせ方はHTMLの基本構造を押さえると理解が早まります。

画像が表示されないときのチェックリスト

「画像が表示されない」というトラブルは、原因のほとんどがパスの間違いです。次の順に確認すると、たいていのケースは解決します。

  1. srcのパスが正しいか(大文字・小文字・スペースに注意)
  2. 画像ファイルが実際に存在するか
  3. 拡張子(.jpg.png.webp)が正しいか
  4. HTMLファイルからの相対パスが合っているか
  5. サーバーに画像がアップロードされているか

特に多いのが、ファイル名の大文字・小文字の違いです。Photo.jpgphoto.jpgはサーバー上では別物として扱われるため、表示されない原因になります。

対応している画像フォーマット

タグはさまざまな画像形式に対応します。用途に応じて使い分けると、画質と容量のバランスがとれます。

フォーマット特徴向いている用途
.jpg / .jpeg写真向け・圧縮率が高い写真・トップ画像
.png透過対応・画質が劣化しないロゴ・アイコン・スクショ
.webpjpg/pngより小さい容量あらゆる用途(モダン推奨)
.gifアニメーション対応簡単なアニメーション
.svgベクター形式・拡大しても劣化しないロゴ・アイコン
.avif新しいフォーマット・webpより小さい高解像度画像(最新ブラウザ向け)

迷ったときは.webpが無難です。多くのモダンブラウザが対応しており、容量を抑えつつ画質を保てます。

よくある質問

imgタグについて、初心者から特によく寄せられる質問をまとめました。

Q1:imgタグに終了タグは必要ですか?

不要です。は自己終了タグなので、は書きません。srcaltを含めて1つのタグで完結します。HTML5では末尾のスラッシュ()も省略可能です。

Q2:alt属性は空でもいいですか?

意味のある画像では空にしないのが基本です。空でよいのは、ロゴ背景や区切り線などコンテンツとして意味を持たない装飾画像だけです。装飾画像はalt=""にすると、スクリーンリーダーが不要な読み上げを避けられます。

Q3:width・heightは必ず書くべきですか?

書くことを推奨します。サイズを指定するとレイアウトのズレ(CLS)を防げ、表示の安定につながります。レスポンシブで横幅を変える場合も、HTML側に実サイズを書きつつCSSのmax-width:100%で調整するのが基本です。

Q4:jpgとpng、webpはどれを使えばいいですか?

写真は.jpg、透過が必要なロゴ・アイコンは.pngが定番です。容量を抑えたいなら、両者の用途をカバーできる.webpが有力です。表示速度を重視するサイトでは、.webpへの変換を検討するとよいでしょう。

Q5:画像が表示されません。何を確認すればいいですか?

まずsrcのパスを確認してください。大文字・小文字の違い、フォルダ階層のズレ、拡張子の打ち間違いが原因の大半です。次に画像ファイルがサーバーに存在するか、正しくアップロードされているかを確認します。

まとめ:imgタグは3点を押さえれば十分

最後に、この記事の要点を整理します。

この記事のまとめ
  • 基本の書き方<img src="パス" alt="説明">。終了タグは書かない
  • alt属性は必ず設定。アクセシビリティ・SEO・表示エラー時の三役を担う
  • width・height指定でレイアウトのズレ(CLS)を防ぎ、表示が安定
  • CSSの max-width:100%を基本に、picture・srcsetでレスポンシブ対応
  • loading=”lazy”はファーストビュー以外に付けて表示を高速化

imgタグはHTMLで最もよく使うタグの一つです。altの記述・サイズ指定・遅延読み込みという3点を意識するだけで、SEO・アクセシビリティ・表示速度がまとめて底上げされます。基礎をひととおり学びたい方はHTML入門から、ブラウザに表示される仕組みを知りたい方はHTMLがブラウザに表示される仕組みへ進んでみてください。


あわせて読みたい


免責事項

※本記事はHTML・Web制作に関する一般的な情報を整理したものです。仕様やブラウザの対応状況は変更される場合があるため、実装時は各ブラウザ・公式ドキュメント(MDN等)の最新情報をご確認ください。


よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

大学卒業後、Web制作会社に入社し、コーポレートサイトやECサイト、キャンペーンサイトなど幅広い案件を担当。企画・設計からデザインディレクション、進行管理、納品後の運用改善までトータルで携わる。クライアントの課題整理から戦略立案まで踏み込む提案力と、円滑なチームマネジメントに定評がある。

・Webサイト構築の企画・情報設計
・UI/UX改善提案
・制作進行管理・品質管理
・マーケティング視点での運用改善

Webサイトは“つくって終わり”ではなく、運用しながら成果を伸ばしていくものだと考えています。お客様のビジネスとユーザーの両方にとって価値のあるWebサイトを、戦略から実装まで全力でサポートいたします。

目次