- ベストアンサー
IEとFirefoxのリンクのhover状態の異なり方と解決方法
- IEとFirefoxでリンクの「hover」の状態が異なっています。メニューに画像を使用しているため、IEでは画像全体に色がかかりますが、Firefoxでは画像の下部のみに色がかかります。画像をテキストに変更すると、テキスト全体にきちんと色がかかります。この問題の解決方法について教えてください。
- IEとFirefoxでリンクの「hover」の状態が異なっています。メニューのソースコードには画像が使用されており、IEでは画像全体に色がかかる一方、Firefoxでは画像の下部のみに色がかかります。画像をテキストに変更すると、テキスト全体に色がかかることが確認されています。この問題の原因と解決方法について教えてください。
- IEとFirefoxでリンクの「hover」の状態が異なります。メニューには画像が使用されており、IEでは画像全体に色がかかるのに対し、Firefoxでは画像の下部のみに色がかかります。画像をテキストに変更することで、テキスト全体にきちんと色がかかることが確認されています。この問題の解決方法についてアドバイスをいただきたいです。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#ANo.2 です。 補足だったので気づきませんでした。 最初の質問と内容が変わっていますので、こういう場合は新しいスレッドを立ててくださいね。そうすれば回答も得られやすいと思います。 以下、補足の回答ですが、 前回回答でaタグをブロック要素にしたので、aタグにpaddingを設定できます。 なので、tableの高さをなくし、 a{display:block;padding:30px 0;} のような感じで。 どうしてもtableの高さを固定したいというのであれば、正攻法ではありませんがtableの高さと同じ値をline-heightに設定することで対応可能です(単一行のみ)。 tableの高さが100pxであれば、 a{display:block;line-height:100px;} のような感じで。
その他の回答 (3)
- x_lady007
- ベストアンサー率75% (37/49)
#ANo.2です。 IE6・7が間違った解釈をしています(IE8は正常)。 以下のようにしてみるとよく分かりますが、通常インライン要素はテキストの高さ分しか高さがありません(厳密には高さはありません)。 ■HTML ---------------------- <table width="100%" height="40" cellspacing="0"> <tr> <td width="100"><a href="page1.html"><img src="menu1.gif" border="0" alt="">あああ</a></td> <td width="100"><a href="page2.html"><img src="menu2.gif" border="0" alt="">あああ</a></td> <td width="100"><a href="page3.html"><img src="menu3.gif" border="0" alt="">あああ</a></td> </tr> </table> ---------------------- ■CSS ---------------------- a{border:1px solid #000000;} a:hover{background-color:#000000;} ----------------------
お礼
ご回答ありがとうございます。 >IE6・7が間違った解釈をしています(IE8は正常)。 わかりました。 a{border:1px solid #000000;}でインライン要素がどういうものかがわかりました。
- x_lady007
- ベストアンサー率75% (37/49)
a{display:block;} a:hover{background-color:#000000;} で直ると思います。 インライン要素は幅と高さがありませんので、通常このようなボタンの処理をしたい場合はブロック要素に変換します。 すべてのa要素をブロック要素に変換したくなければ任意の名前をつけてください。
お礼
ご回答いただきありがとうございます。 a{display:block;}でうまくできました。 でも、IEとFirefoxで異なるのはどうしてなのでしょうか?
補足
もう少し教えてください。 メニューボタンに「画像」を使っていますが、これを「テキスト」に変更すると、a{display:block;}でセルの横幅いっぱいに広がりますが、縦幅はテキストの高さぎりぎりになってしまいます。 テキストで縦幅もセルの高さいっぱいに広げる方法はあるのでしょうか? もしおわかりでしたら教えていただけませんか?
- yyr446
- ベストアンサー率65% (870/1330)
下の方だけにしか色がつかないのじゃなくて、隙間から色が見えてるのです。 CSSで、 a img {vertical-align:middle;}
お礼
ご回答いただきありがとうございます。 a img {vertical-align:middle;}で画像の中心(文字がある部分)に色がつきましたが、これでは画像全体に色がつきません。
お礼
ご回答ありがとうございます。 両方の方法で試してみました。 これ、使えますね。 貴重な情報をどうもありがとうございました。