• ベストアンサー

日本地図(白地図的)にリンクを埋め込む方法

ホームページ内に日本地図(白地図的な地図)を表示し 各都道府県に「マウスオーバー」すると都道府県が色づき (マウスオーバー属性) クリックすると、各ページへリンクする形のホームページを 作りたいのですが、サンプル的なページをご存知の方 手法をご存知のかたご教授ください。 どうぞよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

No.2です。 アイデアだけ提示してじゃ、「あまりにも」なので・・ mapを使う方法は、マニュアルも仕様書を含めて豊富にあるのでそちらを参照してください。都道府県名に:hoverすると該当都道府県が赤くなる方法です。  県名表示の位置だけ、表示を確認しながら調整するだけですから、とても楽でしょう。 >率直にナビゲーションリンクを記述して、その文字列をabsoluteで地図上において、その文字列がマウスオーバーされると背景を変える方法  の説明とサンプルを上げておきます。 [HTML]  セオリーどおり、HTMLには文書構造以外は一切書きません。 ・先でどのようにプレゼンテーション(表現)を変更できます ・携帯電話や点字端末、プリンターなど様々な端末で利用できる ・検索エンジンにも理解できる。  ナビゲーションですから <div class="nav">   <ul>     <li id="hokkaidou"><a href="./hokkaidou">北海道</a></li>     <li id="aomori"><a href="./aomori">青森県</a></li>     <li id="akita"><a href="./akita">秋田</a></li>     <li id="iwate"><a href="./iwate">岩手県</a></li>     <li id="yamagata"><a href="./yamagata">山形県</a></li>     <li id="fukushima"><a href="./fukushima">福島県</a></li>   </ul> </div>  とだけ、マークアップしする。 [スタイルシート]  リンクの数だけ、画像を用意します。2色のGIFで一色を透明にしておけばファイルサイズも小さく転送負荷や描画負荷が問題になることはないでしょう。  今回は640(W)×400(H)の画像を用意しました。  Map of Japan Ver. 1.3 ( http://aoki2.si.gunma-u.ac.jp/map/map.html ) ・全国白地図は背景白-透明色で、全体の輪郭と県境を黒の線 ・県の部分だけ赤で着色し、それ以外は透明  Z軸座標(z-index)は、0←背景(白)--都道府県着色図--全国枠線--a要素→前面とする。  都道府県名は絶対配置で白地図上に配置する。印刷時には地図は表示せずリンク先URLを印刷する。 ★Another HTML-lint 5 ( http://www.htmllint.net/html-lint/htmllint.html ) ★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_input )  で検証済みのウェブ標準-HTML4.01strict+CSS2.1 です。 タブは_に置換してあるので戻すこと。  最低限の指定しか指定していません。 ※IEはz-indexに関して重大なバグがありますが、それへの対処はしていません。後出の要素がz-indexを無視して前のものを隠す。  別途、対策が必要でしょう。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> _<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> _<title>サンプル</title> _<meta name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> _<style type="text/css" media="screen"> <!-- div.nav{ _width:640px;height:400px; _margin:0 auto; _border:ridge 3px gray; _font-size:9px;line-height:16px; _position:relative; _background-color:white; _z-index:10; } div.nav ul,div.nav ul li{list-style-type:none;margin:0;padding:0;} /* 白地図 */ div.nav ul{width:100%;height:100%;background:transparent url(./images/map/white.gif);z-index:10;} div.nav li{position:absolute;} div.nav li a{z-index:100;} /* 県名の位置 */ #hokkaidou{left:500px;top:80px;} #aomori{left:425px;top:170px;} #iwate{left:430px;top:210px;} #akita{left:400px;top:200px;} #yamagata{left:380px;top:230px;} #fukushima{left:410px;top:245px;} /* hover時に追加する画像 */ div.nav li:hover:after{position:absolute;z-index:-100;} #hokkaidou:hover:after{content:url(./images/map/hokkaidou.gif);left:-500px;top:-80px;} #aomori:hover:after{content:url(./images/map/aomori.gif);left:-425px;top:-170px;} #iwate:hover:after{content:url(./images/map/iwate.gif);left:-430px;top:-210px;} #akita:hover:after{content:url(./images/map/akita.gif);left:-400px;top:-200px;} #yamagata:hover:after{content:url(./images/map/yamagata.gif);left:-380px;top:-230px;} #fukushima:hover:after{content:url(./images/map/fukushima.gif);left:-410px;top:-245px;} --> _</style> _<style type="text/css" media="print"> <!-- a:after{content:"( http://hoge.com" attr(href)" )";} --> _</style> </head> <body> _<div class="header"> __<h1>タイトル</h1> __<p>このページでは・・・・</p> _</div> _<div class="section"> __<h2>ナビ</h2> __<div class="nav"> ___<ul> ____<li id="hokkaidou"><a href="/hokkaidou">北海道</a></li> ____<li id="aomori"><a href="/aomori">青森県</a></li> ____<li id="akita"><a href="/akita">秋田</a></li> ____<li id="iwate"><a href="/iwate">岩手県</a></li> ____<li id="yamagata"><a href="/yamagata">山形県</a></li> ____<li id="fukushima"><a href="/fukushima">福島県</a></li> ___</ul> __</div> _</div> _<div class="footer"> __<h2>文書情報</h2> __<dl class="documentHistry"> ___<dt id="FIRST-PUBLISHED">First Published</dt> ___<dd>2012-08-10</dd> ___<dt id="LAST-MODIFIED">Last Modified</dt> ___<dd>2012-08-10 12:00:00 (JST)</dd> __</dl> __<address>&copy; ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address> _</div> </body> </html>

その他の回答 (4)

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.5

IE8以降に対応させるためには、HTMLが煩雑になるので嫌だけど・・ __<div class="nav"> ___<ul> ____<li id="hokkaidou"><a href="/hokkaidou">北海道</a><img src="./images/map/hokkaidou.gif" width="640" height="400" alt=""></li> ____<li id="aomori"><a href="/aomori">青森県</a><img src="./images/map/aomori.gif" width="640" height="400" alt=""></li> ____<li id="akita"><a href="/akita">秋田</a><img src="./images/map/akita.gif" width="640" height="400" alt=""></li> ____<li id="iwate"><a href="/iwate">岩手県</a><img src="./images/map/iwate.gif" width="640" height="400" alt=""></li> ____<li id="yamagata"><a href="/yamagata">山形県</a><img src="./images/map/yamagata.gif" width="640" height="400" alt=""></li> ____<li id="fukushima"><a href="/fukushima">福島県</a><img src="./images/map/fukushima.gif" width="640" height="400" alt=""></li> ___</ul> __</div> として、 <!-- div.nav{ _width:640px;height:400px; _margin:0 auto; _border:ridge 3px gray; _font-size:9px;line-height:16px; _position:relative; _background-color:white; _z-index:10; } div.nav ul,div.nav ul li{display:block;list-style-type:none;margin:0;padding:0;} div.nav ul li img{display:none;position:absolute;top:0;left:0;} /* 白地図 */ div.nav ul{width:100%;height:100%;background:transparent url(./images/map/white.gif);z-index:10;} /* 県名の位置 */ div.nav ul li{position:absolute;} #hokkaidou{left:500px;top:80px;} #aomori{left:425px;top:170px;} #iwate{left:430px;top:210px;} #akita{left:400px;top:200px;} #yamagata{left:380px;top:230px;} #fukushima{left:410px;top:245px;} #hokkaidou img{left:-500px;top:-80px;} #aomori img{left:-425px;top:-170px;} #iwate img{left:-430px;top:-210px;} #akita img{left:-400px;top:-200px;} #yamagata img{left:-380px;top:-230px;} #fukushima img{left:-410px;top:-245px;} div.nav ul li:hover img{display:block;z-index:-20} -->

回答No.3

"レイヤー"とか"position:absolute"とか"どこでも配置モード"とか呼ばれてるやつ。 http://pv.wi-wi.jp/chizu/

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

mapを使うのが良いでしょう。 13.6.1 クライアント側イメージマップ: MAP要素とAREA要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/objects.html#edef-MAP )  座標を求めるのが大変ですよ。--考えただけでぞっとする。 ツールはあります。  →PicoClick!の詳細情報 : Vector ソフトを探す! ( http://www.vector.co.jp/soft/win95/net/se187554.html )  画像は白地図と特定の県のみ色が違う画像を47用意して、背景画像を切り替えるほうが位置指定が不要なので楽でしょう。  jqueryを使う方法もありますが、座標を求めるのはやはり大変です。上記で得た座標を使えばなんとか・・ ★クリッカブルマップでのロールオーバー | WebScripter.jp ( http://webscripter.jp/technical-note/enabling_rollover_use_clickable_map/ )  とか、mapを使う方法はSEO的に・・という文言がありますが、それはソースの書き方次第です。詳しくは最初に紹介した仕様書をお読みください。  簡単なのは、率直にナビゲーションリンクを記述して、その文字列(「山口県」とか)をabsoluteで地図上において、その文字列がマウスオーバーされると背景を変える方法でしょう。AREAを書く必要がありませんから・・

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 http://q.hatena.ne.jp/1307890783 ここなんか参考になりますでしょうか。

関連するQ&A