ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
map要素とは
<map> は HTML のイメージマップを定義する要素です。1 枚の画像の任意の領域に対し、それぞれ別のリンク先を割り当てられます。たとえば「日本地図の画像で、北海道を押したら北海道のページへ、九州を押したら九州のページへ」といった作りが、JS なしで実現できます。
基本構文
<img src="/img/japan.png" alt="日本地図" usemap="#japan-map" width="600" height="400">
<map name="japan-map">
<area shape="rect" coords="350,30,500,120"
href="/area/hokkaido" alt="北海道">
<area shape="circle" coords="280,250,40"
href="/area/kansai" alt="関西">
<area shape="poly" coords="100,300,180,280,200,360,120,380"
href="/area/kyushu" alt="九州">
</map>
属性
| 要素 | 属性 | 意味 |
|---|---|---|
| <map> | name | マップ名(必須、<img usemap> から参照) |
| <img> | usemap | 使用するマップ名を # 付きで指定 |
| <area> | shape | 領域の形(rect/circle/poly/default) |
| <area> | coords | 領域の座標(形に応じた値) |
| <area> | href | クリック時の遷移先 |
| <area> | alt | 代替テキスト(必須) |
| <area> | target | 遷移先のフレーム / タブ |
shape と coords の書き方
| shape | 意味 | coords の形式 | 例 |
|---|---|---|---|
rect | 長方形 | 左上x, 左上y, 右下x, 右下y | 50,30,200,150 |
circle | 円 | 中心x, 中心y, 半径 | 100,100,40 |
poly | 多角形 | x1,y1, x2,y2, x3,y3, ... | 10,10, 50,30, 30,80 |
default | 残りの領域すべて | 不要 | — |
サンプル:4 領域のメニュー画像
<img src="/img/banner.png" alt="メニュー" usemap="#menu" width="800" height="200">
<map name="menu">
<area shape="rect" coords="0,0,200,200"
href="/menu/coffee" alt="コーヒー">
<area shape="rect" coords="200,0,400,200"
href="/menu/tea" alt="紅茶">
<area shape="rect" coords="400,0,600,200"
href="/menu/cake" alt="ケーキ">
<area shape="rect" coords="600,0,800,200"
href="/menu/news" alt="お知らせ">
</map>
レスポンシブ対応の注意点
coords は画像のオリジナルサイズ基準の絶対ピクセルです。CSS で画像を縮小・拡大しても coords は追従しません。これがイメージマップ最大の弱点です。対策としては:
- 画像サイズを CSS で変えない(固定)
- JS で表示倍率に合わせて
coordsを再計算する - またはSVG に置き換える(<a xlink:href> を持つパスを並べる)
代替手段との比較
| 手段 | 長所 | 短所 |
|---|---|---|
| <map> + <area> | JS 不要、HTML 標準 | レスポンシブ不可(座標固定) |
| SVG + <a> | 拡大縮小に強い、アニメ可 | SVG 作成の手間 |
| CSS で要素を重ねる | 柔軟、リッチ装飾可 | HTML/CSS 量が増える |
アクセシビリティ
alt属性は必須(スクリーンリーダーはaltでリンク内容を読み上げ)- 意味のある順序で
<area>を並べる(タブ移動順になる) - 装飾的なクリック領域なら
alt=""を許容(空文字は意味のない領域) - キーボード操作で各領域へ Tab 移動できる —
tabindex不要、フォーカスリングは確実に見せる - モバイルではタップ領域が 44px 四方以上になるよう
coordsを設計
座標を取得する手間を減らすツール
イメージマップ作成最大の手間は coords の座標取り。手動でやるのは現実的でないので、次のような手段が使われます。
- オンラインのイメージマップエディタ(画像を読ませて領域をマウスで描く → HTML を出力)
- 画像編集ソフト(GIMP、Photoshop)の「Image Map」エクスポート機能
- HTML エディタ拡張(VS Code 拡張等)
運用としては、画像と一緒に座標情報を JSON で保存しておき、ビルド時に HTML へ展開すると、画像差し替え時の保守が楽になります。
SEO 上の扱い
検索エンジンは <area> の href をリンクとしてクロール対象にします。alt 属性がアンカーテキスト相当として扱われるので、各領域の alt はそこへ移動する内容を表す具体的な語にするのが望ましいです(例: 「メニュー」より「ランチメニュー」)。
よくある落とし穴
usemap="japan"— # が必要。usemap="#japan"と書くnameとidの混同 —usemapが参照するのはname- 同じページに同名 map が複数 — ブラウザによって挙動不定
- CSS で
imgを縮小したのにcoords据え置き — クリック位置がズレる polyの座標が奇数個になっている — x,y のペアなので必ず偶数個areaにaltがない — HTML 仕様違反、検証ツールで弾かれる
関連
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?