• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSSでテーブルのセルが、a:hover で背景を変わるようにしましたが、枠がちらついてしまいます。)

CSSでテーブルのセルが、a:hoverで背景を変わるようにする方法とは?

このQ&Aのポイント
  • CSSのhover状態を利用してテーブルのセルの背景色を変えたい場合、セルの外側の枠がちらつく問題が発生することがあります。
  • この問題を解決するためには、セルの枠を削除するか、テーブル自体に影響を与えないようにする必要があります。
  • 具体的には、テーブルのセルに対してborderを0に設定し、背景色の変更時に枠がちらつかないようにします。また、セル内のテキストにアンカータグを設定し、a:hoverのスタイルを変更することで、背景色の変更が可能となります。

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

とりあえずこんな感じでどうでしょう <style> table .a{border: 0px;background-color:red;;padding: 0px;width: 150px;} table .a a{display:block;border:0px;padding: 2px;width: 150px;} table .a a:hover{background-color:orange;} </style> <table> <tr> <td class="a"><a href="#">test</a></td> </tr> </table>

HeyJudy
質問者

お礼

迅速なご回答ありがとうございます。大変たすかります。きれいに枠が消えました。 .aのpadding を0にして、 .a a{diplay:block;padding:2px;}にするということでしょうか。 .aのときのpaddingが0になると、セルの中のテキストが詰まってしまうんですが、これも同時に改善するにはどうすればよいのでしょうか。 .aのpaddingを2pxにすると、hover状態の枠が復活してしまいます。 アホですいません。

HeyJudy
質問者

補足

なんどもすいません。 重ねて質問したいのですが、Operaで見た場合に、テキスト部分だけhover状態で背景が変わり、セル中のテキストが無い部分は IE7で見るとセル全体がリンクになるんですが、Operaの場合リンク部分はセル全体でなくて、テキスト部分のみになってしまうんですが、これはどうすれば改善できるのでしょうか。 お時間がありましたらこちらもお答えいただけると大変たすかります。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

.aのクラスはアンカーにつけてもよいですか? そうであればこんな感じで・・・ <style> table .a{border: 0px;background-color:red;;padding: 0px;width: 150px;} table a.a{display:block;border:0px;padding: 4px;width: 150px;} table a.a:hover{background-color:orange;} </style> <table> <tr> <td><a href="#" class="a">test</a></td> </tr> </table>

HeyJudy
質問者

お礼

お返事遅くなりました。 勉強になります。ありがとうございました。

関連するQ&A

専門家に質問してみよう