文書型 | 適用 | 子要素 | 開始タグ | 終了タグ | 分類 |
---|---|---|---|---|---|
Strict | ○ | 空要素 | 必須 | 禁止 | インライン要素 |
Transitional | ○ | ||||
Frameset | ○ |
#ID
」の形式で指定します。URIの形式を取るので「#
」が必要です。<a href=?>
〜</a>
で囲まなければいけません。img { vertical-align: bottom; }
img { vertical-align: middle; }
img { vertical-align: top; }
img { float: left; }
img { float: right; }
img { border-width: 太さ; }
img { margin-left: 左の余白; margin-right: 右の余白; }
img { margin-top: 上の余白; margin-bottom: 下の余白; }
HTML中に画像を埋め込むための要素です。この要素は中身のない空要素です。
画像の形式は仕様書で定められていませんが、一般的にはJPEG、GIF、PNGなどがよく利用されます。
src属性に画像のURIを指定し、alt属性に画像の代わりになる文字列を記述します。この2つの属性は必ず記述しなければいけません。alt属性を記述していないページが多いですが、これは文法違反になります。
<p><img src="smplogo.png" alt="HTML 4 + CSS"
width="388" height="63"></p>
object要素を使って画像を埋め込むこともできます。
<object data="画像のURI" type="MIMEタイプ">
画像の代わり
</object>
例えば、
<img src="cat.jpg" alt="ネコの写真">
は、object要素を使って
<object data="cat.jpg" type="image/jpeg">
ネコの写真
</object>
と書き換えることができます。
img要素の場合、画像の代わりになるのはalt属性のテキストだけですが、object要素なら中身にブロックレベル要素とインライン要素のどちらも含むことができます。しかし、Internet Explorerはobject要素に対応していません。
以下はobject要素の表示例です。
alt属性には画像を表示できない環境のために、代わりのテキストを用意します。普段Internet Explorerなど視覚系のブラウザを使っているとあまりピンとこないかもしれませんが、Lynxなどのテキストブラウザ、音声ブラウザ、画像表示をオフに設定した携帯電話のブラウザなど、画像を表示できない環境はたくさん存在します。
alt属性に記述するのは画像の代わりになるテキストであり、必ずしもalt属性=画像の説明ではありません。
× <img src="logo.png" alt="ロゴ">
○ <img src="logo.png" alt="□□会社">
画像が装飾のための意味のないものなら、alt=""
としてください。可能ならば装飾のためのimg要素は使わずに、CSSで見た目を制御したほうがよいです。
×<img src="ball.png" alt="赤い玉">
○<img src="ball.png" alt="">
画像の内容をalt属性で表現しきれないときは、画像の内容を詳しく説明したページを別に作り、longdesc属性でそのURIを示す方法があります。
あらかじめ画像の内容を詳しく説明したHTML文書を作成しておきます。
<p>当サイトのアクセス解析を基にしたブラウザのシェアです。1位は
Internet Explorerで72%、2位はMozilla(Firefoxを含む)で15%、
3位はOperaで4%です。</p>
そして、longdesc属性でそのURIを指定します。
<p><img src="graph.png" alt="ブラウザのシェア:1位はInternet Explorer(72%)"
longdesc="graph-desc.html"></p>
img要素はインライン要素ですから、a要素でアンカーにすることができます。
<p><a href="index.html"><img src="top.png" alt="TOP"></a></p>
タイトルや見出しを画像で表現するときは、img要素をh1?h6要素としてマークアップします。
<h1><img src="logo.png" alt="HTML+CSS入門"></h1>
画像やオブジェクトの特定部分をクリックするなどの操作をしたとき、特定の動作を行わせる仕組みをイメージマップと言います。例えば、日本地図の画像の中で東京の部分をクリックしたら、東京の地図の画像が表示されるといった具合です。イメージマップにはサーバ側・イメージマップとクライアント側・イメージマップの2種類があります。
サーバ側・イメージマップとは、画像をクリックしたときのマウスポインタの座標をCGIに送信する方式です。次のようにismap属性を設定したimg要素を、CGIプログラムのURIへリンクさせます。
<p><a href="http://www.example.com/program.cgi"><img src="pict.png" alt="" ismap></a></p>
画像をクリックすると、ブラウザは「http://www.example.com/program.cgi?x座標,y座標
」というURIを送信します。例えば、x座標=10 y座標=30の箇所をクリックすると、URIは「http://www.example.com/program.cgi?10,30
」となります。座標を受け取ったCGIプログラム(program.cgi
)は、その処理結果をブラウザ側に送信します。
テキストブラウザや音声ブラウザなど画像の特定部分をクリックすることのできないブラウザは、サーバーサイドイメージマップを利用することができません。その場合は、x座標=0 y座標=0をサーバに送信します。
アクセシビリティの観点から、できるだけクライアント側・イメージマップを使うことがウェブコンテンツ・アクセシビリティ・ガイドライン 1.0で強く推奨されています。
<!-- To avoid problems with text-only UAs as well as
to make image content understandable and navigable
to users of non-visual UAs, you need to provide
a description with ALT, and avoid server-side image maps -->
<!ELEMENT IMG - O EMPTY -- Embedded image -->
<!ATTLIST IMG
%attrs; -- %coreattrs, %i18n, %events --
src %URI; #REQUIRED -- URI of image to embed --
alt %Text; #REQUIRED -- short description --
longdesc %URI; #IMPLIED -- link to long description
(complements alt) --
name CDATA #IMPLIED -- name of image for scripting --
height %Length; #IMPLIED -- override height --
width %Length; #IMPLIED -- override width --
usemap %URI; #IMPLIED -- use client-side image map --
ismap (ismap) #IMPLIED -- use server-side image map --
>