
画像の一部分だけをリンクにしたいです。
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>
No.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だけをサイズ指定していたから画像がちらつくような感じになってしまっていたんですね。
たしかにソースを見ると、なるほどって思ってしまう部分もありますね。
勉強になりました。
ご親切に書いていただきありがとうございました。
a:hoverだけをサイズ指定していたから画像がちらつくような感じになってしまっていたんですね。
たしかにソースを見ると、なるほどって思ってしまう部分もありますね。
勉強になりました。
No.1
- 回答日時:
通常は718px*400pxのサイズの画像がリンクになってて、hoverする
と200px*100pxに縮小するからhoverしなくなって通常に戻るとhover
してんじゃんってことになって…かわいそうなheaderimg02.jpgは、
所詮背景画像だからheaderimg01.jpgの後ろで誰にも見てもらえない
まま点滅していると。
画像の一部をリンクにするなら、map要素を使いましょう。
参考URL:http://www.w3.org/TR/html401/struct/objects.html …
この回答への補足
ありがとうございました。
できればクリッカブルマップ(イメージマップ)は使いたくなかったので css で書こうと思っていたのですが、無理そうですね。
ありがとうございました。
できればクリッカブルマップ(イメージマップ)は使いたくなかったので css で書こうと思っていたのですが、無理そうですね。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS img と p を縦中央に配置したいのですがうまくいきません。 2 2023/01/12 14:38
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
【CSS】ヘッダーの高さが不明の...
-
余分な縦スクロールバーが出て...
-
css初心者 フレックスボックス...
-
footer を横幅いっぱいに広げる...
-
押したらへっこむボタンのアイ...
-
CSSがなぜかfont-sizeだけ効か...
-
form input テキストを上下中央...
-
メイン画像とグローバルメニュ...
-
cssの複数指定の記述方法
-
CSSで画面サイズを縮小するとレ...
-
画像イメージの上下左右、欲し...
-
CSSと<dl><dd>で間隔をあけて1...
-
画像リンクの下に文字を付けた...
-
表示倍率を変えるとレイアウト...
-
Chrome だと、画像が少し下に...
-
float を使うと隙間ができる
-
cssでの幅の分割(固定・可変混...
-
横スクロールサイトの中央寄せ
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
CSSがなぜかfont-sizeだけ効か...
-
form input テキストを上下中央...
-
【CSS】ヘッダーの高さが不明の...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
余分な縦スクロールバーが出て...
-
W3Cのソースコードの検証サービ...
-
表示倍率を変えるとレイアウト...
-
safariでの横並びリスト(List...
-
<div>と<div>の間の10px程の...
-
border-style:solidで文字がずれる
-
入力フォームとセレクトボック...
-
div内に外部のurlを表示させたい
-
divの中にspanを右寄せにするに...
-
dl,dt,ddタグでdtに対して、row...
-
divで囲まれたpaddingの指定を...
-
footer を横幅いっぱいに広げる...
-
CSSで指定した背景画像にリンク...
おすすめ情報