• ベストアンサー

a:linlk BOXの背景に色をつけたい

http://www.boxicon.com/のサイトのようにリンク部分にカーソルを合わせたときに背景の色が変わるようにしたいです。 自分でいろいろやっているのですが「a:hover」などを使っても文字の周りの背景部分だけは色が変わるのですが、自分は文字部分だけではなくて該当サイトのようにBOXの部分ごと背景色が変わるようにしたいのです。 どのようにソースを書けばよいのでしょうか? また参考になるページなどがあれば教えてください。

  • HTML
  • 回答数2
  • ありがとう数2

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

  • ベストアンサー
  • abril
  • ベストアンサー率69% (388/560)
回答No.2

> しかしリンクがブロック要素になってしまうのですね。。。 この手の、テキストリンクをボタン的に見せる手法では<a>を"display: block;"でブロック要素化するのが大前提です。 インライン要素であった<a>がブロック要素化される事で、リンク領域がテキスト部分だけでなく親要素の幅に合う様になるので。 勿論、 > http://www.boxicon.com/のサイトのように も、その手法です。 > どのようにソースを書けばよいのでしょうか? 上記サイトのその部分のマークアップとそれに対応するCSSをのぞき見ればすぐわかりますよ。 ですが、 > このやり方以外でご存知の方がいらっしゃれば引き続きお願いします。 と仰っているところを見ると、「リンクがブロック要素に」なる事なしで「BOXの部分ごと背景色が変わるようにしたい」のですね? 例えば上記サイトの様なメニュー構成: --------------------------------------------------------------------- <ul class="hoge"> <li><a href="#">メニュー1</a></li> <li><a href="#">メニュー2</a></li> <li><a href="#">メニュー3</a></li> </ul> --------------------------------------------------------------------- であれば、<a>ではなく<li>に疑似要素":hover"を適用する事もできます: --------------------------------------------------------------------- ul.hoge { list-style: none; width: 200px; padding: 0; margin: 0; } ul.hoge li { border: solid 1px #ccc; padding: 3px; margin: 0 0 1px 0; } ul.hoge li:hover { background: #fee; } --------------------------------------------------------------------- こんな感じで。これだと、<a>自体はインライン要素のままなので、リンク領域はテキスト上のみとなりますが、<li>に疑似要素":hover"を適用しているので、<li>にマウスオーバーした際には、<li>全体の背景色が指定した色(ピンク)に変わります。 しかし、困った事にIE6では疑似要素":hover"が<a>以外の要素には効きません。IE7を含めた主要モダン・ブラウザでは問題ないのですが、IE6だけが未実装なのです。なので、IE6にも同様のスタイルを適用する事を視野に入れるのであれば、hackなどを使ってIE6だけ<a>をブロック要素化して"a:hover"で対応する様にするとか、あるいはJavaScriptを導入してIE6でも<a>以外でも疑似要素":hover"が有効になる様にするとか、の対処が必要となってきます。

osiete1192
質問者

お礼

詳しい回答ありがとうございました。 基本的にはブロック要素化するものなのですね。 またブロック化しないで良い方法については大変参考になりました。 ありがとうございます。完璧です。 しかしブラウザの問題がでてくるとのことで 非ブロック要素で作成するには手間がかかってしまうのですね。 そこまでして実行するべか少々考えてみたいと思います。

その他の回答 (1)

  • Wingwrong
  • ベストアンサー率38% (5/13)
回答No.1

display:block; と、WIDTH・HEIGHTを指定して入れてみたらどうでしょうか。

osiete1192
質問者

お礼

さっそくの返信ありがとうございました。 なるほど。 実際やってみて上手く行きませんでしたが ニュアンスがわかったので細かいところ詰めればやれると思います。 ありがとうございます。 しかしリンクがブロック要素になってしまうのですね。。。 このやり方以外でご存知の方がいらっしゃれば引き続きお願いします。

関連するQ&A

  • マウスを乗せると、背景色が変わる仕組みは知ってるんですが・・。

    マウスを乗せると背景色が変わる仕組みは、たしかa=hoverで可能でしたよね。 そこで問題が発生しました。 私は今サイトを作っていて、左側のメニューバーについてはマウスを乗せると背景色が変わるリンクにしたいんですが、普通の文章中に出てくるリンクについてはそういう仕様から外したいんです。 でもa=hoverを使うと全てのリンクに同じ設定が適合されてしまいますよね?CLASSで個別に設定しようとしても無理でした。どうすればいいですか? そこでJAVASCRIPTというものを利用して、マウスを乗せるとその文字背景(もしくはボックス内の背景)が 変わる仕組みを実現できるはずなんですが、具体的なソースコードは知りませんかね?できればボックスごとのオンマウス時の背景色を設定できるようにしたいです

    • ベストアンサー
    • HTML
  • CSSでテーブルのセルが、a:hover で背景を変わるようにしましたが、枠がちらついてしまいます。

    テーブルのセルに、リンクのあるテキストをはって、 a:hoverで背景が変わるようにしたのですが、 hoverの状態でセルの外側だけ背景が変わらずに、hover状態でないときの背景がほんの少しちらついてしまいます。 table .a{border: 0px;background-color:red;;padding: 2px;width: 150px;} table .a a:hover{border:0px;padding: 2px;width: 150px;background-color:orange;} のようにすると、 hover状態で、セルの枠が、ほんの少しredのままになってしまいます。 http://www.smashingmagazine.com/2008/08/13/top-10-css-table-designs/ の 3.BOX の例のように、hover状態できれいに背景の色が変わるようにしたいんですが、どう直せばいいでしょうか。よろしくおねがいいたします。

    • ベストアンサー
    • HTML
  • リンクポイント時に背景色をつけてサクサク表示させたいのですがうまくいきません

    リンクポイント時に背景色をつけるタグ <STYLE><!-- A:HOVER{background-color : #fecd0c;}--></STYLE> を使ってHPを作ってますが、表示したところ素早いカーソルの動きに対応しきれず、サクサクリンクの背景色が表示されません。 あるページでサクサク表示されるのですが、ページソースをみても特にタグの違いがわからずなぜここだけサクサク動いているのかわかりません。 ちなみにサクサク動いている方がページのサイズは重いのですが・・・ どうか改善策をご教授ください。宜しくお願い致します。

    • ベストアンサー
    • HTML
  • オンマウス時の背景色を個別に設定したい

    ごめんなさい。 前にも質問して、回答をいただいて、納得して締め切ったはずの質問が、いざコーディングしてみると動きませんでした。反省しています。やはりちゃんと動くのを確認してからでないと駄目ですね。ということでもう一度同じ質問を出します。ご容赦願います マウスを乗せると背景色が変わる仕組みは、たしかa=hoverで可能でしたよね。 そこで問題が発生しました。 私は今サイトを作っていて、左側のメニューバーについてはマウスを乗せると背景色が変わるリンクにしたいんですが、普通の文章中に出てくるリンクについてはそういう仕様から外したいんです。 でもa=hoverを使うと全てのリンクに同じ設定が適合されてしまいますよね?CLASSで個別に設定しようとしても無理でした。どうすればいいですか? そこでJAVASCRIPTというものを利用して、マウスを乗せるとその文字背景(もしくはボックス内の背景)が 変わる仕組みを実現できるはずなんですが、具体的なソースコードは知りませんかね?できればボックスごとのオンマウス時の背景色を設定できるようにしたいです

    • ベストアンサー
    • HTML
  • 背景の色について

    素朴な疑問です。 いろんなwebページを見て思ったのですが、背景の色が白のページが多いですよね。 でも白い背景に黒の文字より、黒い背景に白の文字の方が見やすいと思いませんか? 白っぽいページって目が疲れませんか? こう思うのは私だけでしょうか?

  • Photoshopで、背景色と色が混じらないようにするには

    質問します。こういう機能があるか分からないのですが書いてみます。 たとえば相手の方で透過色を指定されているとします。ギルドフラッグなどの製作のときに、「#999999」を使用するとこのゲームでは透過色になります、みたいな感じです。 透過が多い旗にしたいので、背景をこの透過色にして、その上に絵や文字を書いていきます。 そうすると文字の周りのエイリアス?なところの色が#999999になじんだ色になってしまうのです。 通常ではこれはなめらかに表示される機能としてとても便利なのですが、今回その部分ははっきりと透過色として色を出したくない部分なので、文字の周りがぼんやりとその色が残ってしまうのは困るのです。 なんとか「背景」「文字」とはっきり分けて描く方法はないものでしょうか。 以前試した方法は新規でその背景色のステージを作り、描いた絵を細かく範囲選択で囲って切り取って貼り付けたものでした。 が、今回文字なので・・・。 どうかよろしくお願いします。

  • リンクの色を2色で使い分けたい

    はじめまして。 良かったらどなたか教えて下さい。 今、一枚のページを作っているのですが、背景色を"#ffffff"(白)とし、そのリンクを以下の様に指定しました。 <style type="text/css"> <!-- A { text-decoration: none} A:link {color:#000000;} A:visited {color:#ffffff;} A:hover {color:#ff6600;} --> </style> 「白地に黒文字リンク、オンマウス時はオレンジ」という指定です。 ところが、同じページ内でテーブルを組み、その背景を#000000と指定する事になりまして、その中にリンクを入れると、「黒字に黒文字リンク、オンマウス時はオレンジ」 でリンクの文字が見えなくなってしまいます。 hoverの効果(オンマウス時はオレンジ)の効果を残しつつ、リンク色を二色に分ける方法は無いでしょうか? (クラス指定の使い方がよく判ってないので、自分で指定するとエラーしか出ないのです)。 お忙しい所申し訳ございませんが、宜しくお願い致します。

    • ベストアンサー
    • HTML
  • 色が・・・背景が・・・

    私のPCはWindowsXPなんですけど、インターネットでの色が出ないんです。というと、例えば友達のHPに行ったとしますよね。そこの背景や、文字の色が見えないんです。画像とかは見えるんですけど、文字の色と背景がなぜか全部の所で見えないんです。最初はその友達がHPを作っているサイトがXP向きの色じゃないと思っていたんですが、他のところで作ってる人のも見えないんです。だから、私のHPも壁紙などを変えようとしても見えないから変えようがないし、掲示板などに投稿する時も文字の色がわからないんです。このgooなどの「今日の質問」とかいう青い部分は見れるんですけど…どうしてなのでしょうか?あと解決方法を知っている方は是非教えてください!

  • 画像リンクの背景色を1つ1つ指定する。

    画像にリンクを張り、その画像に触れたときに、画像の透過されている部分の背景色が変わるようにしたいのですがタグがわかりません。 前に一度やったことがあるのですが、そのときのソースを消してしまってわからなくなっているので困ってます。 <a href="xxx.html" style="a:hover background:#ff0000"><img src="xxx.gif" border="0"></a> ↑こんな感じだったようなきがします。(あまり記憶にさだかではないのですが。) 全体的にリンクの背景色をしていするスタイルシートはわかるので、そうではなくページ内にあるリンク一つ一つの背景色を指定する方法が知りたいです。よろしくおねがいします。

    • ベストアンサー
    • HTML
  • CSSでセレクトボックス カーソル背景色について

    お世話になります。 添付の赤枠で囲っている部分で カーソルをあわせたときの背景色を変更したいのですが 方法が分からず詰まっております。 focusやhoverだとちょっと挙動が違いました。。。 何かしらの方法あったような気がするのですが度忘れしてしまいまして お手数をおかけしますがぜひご教授ください!