この記事はHTML 4/XHTML 1での<map>要素についての解説記事です。
HTML 5での<map>要素に関する解説記事は、HTML 5 リファレンス内のHTML 5での<map>要素をご覧ください。
クライアントサイドクリッカブルマップを指定する<map>要素についての解説です。
<map>要素とは、クライアントサイドクリッカブルマップを指定する要素です。
<map>要素は、以下の文書型で利用出来ます。
<map>要素はクライアントサイド・イメージマップモジュールに属します。
<map>要素はインライン要素です。
しかしながら、<map>要素の内容は、ブロックレヴェル要素か<area>要素に限られ、インライン要素を入れる事が出来ません。
HTML 4.01以降では、<map>要素にブロックレヴェル要素を入れられるようになりました。
これは、クリッカブルマップが利用出来ない環境で代替となるメニューとして機能させるためのものです。
しかしながら、クリッカブルマップに対応しているかどうかに拘らず、内容は常に表示されます。
このブロックレヴェル要素においては、クリッカブルマップに使われる<a>要素においてshape属性とcoords属性を附与して領域指定を行います。
HTML 4.01及びISO-HTMLに限り、<map>要素にはブロックレヴェル要素と<area>要素を混在出来ます。
尚、XHTMLではブロックレヴェル要素か<area>要素のいずれか片方のみを記述する事となっております。
<map>要素には、以下の属性が定められております。
クリッカブルマップを描く<img>要素または<object>要素がusemap属性で参照するフラグメント名を指定します。name属性についてもご覧下さい。
<map>要素で使える共通属性には
があります。
name属性は、XHTML 1.0以降はid属性に置き換える事が推奨されております。
しかしながら、ネットスケープ 4.x以前などの旧式のユーザエージェントでは、id属性によるフラグメントは機能しません。
このため、XHTML 1.0ではid属性とname属性を併記する事が求められております。
また、ISO-HTMLではname属性は必須属性となっております。
name属性の値はDTD上ではCDATA(任意の文字列)となっておりますが、id属性に置き換えられるべきものである事から、id属性同様
にすべきでしょう。
name属性の値は大文字小文字を区別します。
尚、ISO-HTMLではid属性及びname属性の値に用いる英字には大文字を使うべきとされております(ISO/IEO 15445:2000のDTDに依る)。
<div class="map"><h2><img alt="営業エリア" src="Map.html" width="320" height="240" usemap="#MAP1" /></h2><map id="MAP1" name="MAP1"><area href="North.html" alt="北部エリア" shape="rect" coords="0, 0, 319, 59"/>…<area href="South.html" alt="南部エリア" shape="rect" coords="0, 180, 319, 239"/></map></div>