プロが教える店舗&オフィスのセキュリティ対策術

画像の一部分だけをリンクにしたいです。
margin と width と height で指定したエリアをマウスオーバーすると、指定した部分だけ画像が変わってリンクになるという動作をさせたいのですが、うまくいきません。
最悪、画像が変わらなくても指定した部分のリンクができれば良いのですが画像全体がリンクになっているため、全体画像の上でマウスを動かしていると、リンク時のマウスカーソルになったり通常時のマウスカーソルになったりを繰り返しています。
html と css は以下のような記述をしています。

<html>
<head>
<style type="text/css">
div#menu a:hover {
display:block;
background-image:url(img/headerimg02.jpg);
background-repeat:no-repeat;
margin: 50px 468px 250px 50px;
width:200px;
height:100px;
text-align:center;
text-indent: -2000px;
overflow: hidden;
}
</style>
</head>
<body>
<div id="menu">
<a href="hoge.html"><img src="img/headerimg01.jpg" width="718" height="400"></a>
</div>
</body>
</html>

A 回答 (2件)

> 全体画像の上でマウスを動かしていると、リンク時のマウスカーソルになったり通常時のマウスカーソルになったりを繰り返しています。


hover前とhover後の大きさを統一する必要があると思います。
それと、background-imageはimg要素より後ろにくるので、background-imageを重ねるイメージで。

<style type="text/css">
/* テスト */
div#menu {
display:block;
background-image:url(img/headerimg01.jpg);/* */
background-repeat:no-repeat;
background-color: #eef;
width: 718px;
height: 400px;
}
div#menu a {
display:block;
width: 200px;
height: 100px;
position: relative;
top: 150px;
left: 259px;
background-image: none;
background-repeat:no-repeat;
background-color: #fee;
text-indent: -9999px;
}
div#menu a:hover {
background-image:url(img/headerimg01.jpg);
background-color: #efe;
}
</style>
</head>
<body>
<div id="menu">
<a href="hoge.html">test</a>
</div>

この回答への補足

ご親切に書いていただきありがとうございました。
a:hoverだけをサイズ指定していたから画像がちらつくような感じになってしまっていたんですね。
たしかにソースを見ると、なるほどって思ってしまう部分もありますね。
勉強になりました。

補足日時:2009/10/28 21:16
    • good
    • 0
この回答へのお礼

ご親切に書いていただきありがとうございました。
a:hoverだけをサイズ指定していたから画像がちらつくような感じになってしまっていたんですね。
たしかにソースを見ると、なるほどって思ってしまう部分もありますね。
勉強になりました。

お礼日時:2012/03/28 09:42

通常は718px*400pxのサイズの画像がリンクになってて、hoverする


と200px*100pxに縮小するからhoverしなくなって通常に戻るとhover
してんじゃんってことになって…かわいそうなheaderimg02.jpgは、
所詮背景画像だからheaderimg01.jpgの後ろで誰にも見てもらえない
まま点滅していると。

画像の一部をリンクにするなら、map要素を使いましょう。

参考URL:http://www.w3.org/TR/html401/struct/objects.html …

この回答への補足

ありがとうございました。
できればクリッカブルマップ(イメージマップ)は使いたくなかったので css で書こうと思っていたのですが、無理そうですね。

補足日時:2009/10/27 11:43
    • good
    • 0
この回答へのお礼

ありがとうございました。
できればクリッカブルマップ(イメージマップ)は使いたくなかったので css で書こうと思っていたのですが、無理そうですね。

お礼日時:2012/03/28 09:42

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!