
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_ … )
で検証済みのウェブ標準-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>© ORUKA1951 2012 - 2016 All Rights Reserved mailto:*****</address>
_</div>
</body>
</html>

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.2
- 回答日時:
mapを使うのが良いでしょう。
13.6.1 クライアント側イメージマップ: MAP要素とAREA要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html4 … )
座標を求めるのが大変ですよ。--考えただけでぞっとする。
ツールはあります。
→PicoClick!の詳細情報 : Vector ソフトを探す! ( http://www.vector.co.jp/soft/win95/net/se187554. … )
画像は白地図と特定の県のみ色が違う画像を47用意して、背景画像を切り替えるほうが位置指定が不要なので楽でしょう。
jqueryを使う方法もありますが、座標を求めるのはやはり大変です。上記で得た座標を使えばなんとか・・
★クリッカブルマップでのロールオーバー | WebScripter.jp ( http://webscripter.jp/technical-note/enabling_ro … )
とか、mapを使う方法はSEO的に・・という文言がありますが、それはソースの書き方次第です。詳しくは最初に紹介した仕様書をお読みください。
簡単なのは、率直にナビゲーションリンクを記述して、その文字列(「山口県」とか)をabsoluteで地図上において、その文字列がマウスオーバーされると背景を変える方法でしょう。AREAを書く必要がありませんから・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
画像イメージの上下左右、欲し...
-
ネガティブマージン
-
スタイルシートで画面を縦に2...
-
【CSS】ヘッダーの高さが不明の...
-
表示倍率を変えるとレイアウト...
-
css初心者 フレックスボックス...
-
余分な縦スクロールバーが出て...
-
日本地図(白地図的)にリンク...
-
トップ画像の上の隙間をなくし...
-
iframe 内の画像を自動縮小させ...
-
CSSで左に画像、右にテキストを...
-
どんな場合でもブラウザ画面の...
-
IEでmargin:autoが効かない
-
CSSで3分割した背景画像を配置...
-
【HTML&CSS】フッター下部の余...
-
背景が下まで表示されないんです。
-
CSS(0の単位)について
-
スタイルシートの表示結果の違...
-
safariでの横並びリスト(List...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
【CSS】ヘッダーの高さが不明の...
-
widthやheightの数値に単位(px...
-
css初心者 フレックスボックス...
-
form input テキストを上下中央...
-
画像イメージの上下左右、欲し...
-
余分な縦スクロールバーが出て...
-
ページを拡大縮小でborderが消...
-
CSSがなぜかfont-sizeだけ効か...
-
表示倍率を変えるとレイアウト...
-
スクロールボックスを中央に配...
-
cssで文字サイズ指定、ptでもpx...
-
投稿フォームの整列
-
入力フォームとセレクトボック...
-
<div>と<div>の間の10px程の...
-
W3Cのソースコードの検証サービ...
-
CSSで「overflow:scroll」をしてい
-
ネガティブマージン
-
divで囲まれたpaddingの指定を...
-
FC2ショッピングカート 写真の...
おすすめ情報