reflux flow > HTML/XHTMLリファレンス > HTML/XHTML map要素
map要素はクライアントサイド・イメージマップを定義するための要素です。
ブロックレベル要素とarea要素を子要素として記述することができます。ただし、一つ以上の要素を含む必要があります。また、XHTML1.0ではブロックレベル要素とarea要素を混在させることはできません。
| 属性名 | 属性値 | 説明 |
|---|---|---|
| name | CDATA | HTML4.01では必須属性(XHTML1.1では指定できません)。イメージマップ名を指定します。XHTMLではname属性ではなくid属性を用います。 |
id(XHTMLでは必須), class, title, lang(xml:lang), dir, style, xmlns(XHTML1.1のみ)
onclick, ondblclick, onmousedown, onmouseup, onmouseover, onmousemove, onmouseout, onkeypress, onkeydown, onkeyup
map要素はクライアントサイド・イメージマップを定義するための要素です。イメージマップにおいてクリックできる領域は、map要素内のarea要素またはa要素で定義します。オブジェクト(object要素、img要素など)のusemap属性にmap要素の名前(HTMLの場合はname属性、XHTMLの場合はid属性)を指定することでオブジェクトとイメージマップを関連付けます。
<!-- 例 -->
<p>
<img src="image.png" alt="" usemap="#imagemap" />
<map name="imagemap" id="imagemap">
<area href="item1.html" shape="circle" coords="30, 30, 10" alt="項目1" />
<area href="item2.html" shape="circle" coords="60, 30, 10" alt="項目2" />
<area href="item3.html" shape="circle" coords="90, 30, 10" alt="項目3" />
</map>
</p>
<!-- 例 -->
<p>
<img src="image.png" alt="" usemap="#imagemap" />
<map name="imagemap" id="imagemap">
<p>
<a href="item1.html" shape="circle" coords="30, 30, 10">項目1</a>,
<a href="item2.html" shape="circle" coords="60, 30, 10">項目2</a>,
<a href="item3.html" shape="circle" coords="90, 30, 10">項目3</a>
</p>
</map>
</p>
area要素を用いた場合と異なり、map要素の内容がそのまま代替内容になります。ですから、イメージマップ関連のタグと属性が無視されても代替内容を利用することができます。このようにa要素を用いた方がクライアントサイド・イメージマップに対応していないブラウザに優しいと言えます。ただし、area要素によるイメージマップに対応しているブラウザでも、a要素によるイメージマップには対応していない場合があります。
XHTML1.1ではusemap属性の値がURIからIDREFに変更されました。HTML4.01やXHTML1.0ではusemap="#id"のようにURIとして記述しますが、XHTML1.1ではusemap="id"のようにid属性値をそのまま記述します。ただし、HTMLのレンダリングを目的とした従来のブラウザでは正常に機能しない可能性があります。