- ベストアンサー
CSS:hoverでナビボタンの背景画像を変える方法
- CSS:hoverを使用してナビボタンの背景画像を変更する方法について教えてください。
- ナビボタンの左端に余白を設ける方法についても教えてください。
- 現在、Paddingの設定がうまく動作せず、不具合が生じている状況です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No1です。 N02様がすでにお答えですが… >「IEを除く」とは? IEはリンク要素以外にhoverは設定されていません。 どのような全体構成なのか不明ですが、動作するようにするには 1)a要素をブロックにしてサイズを設定し、a要素の背景を変えるようにする (文字の表示位置の調整が必要かと思われます。) (=No2様のご回答) 2)IEでもリンク要素以外のhoverが可能なようにして、li要素の背景を変える。 ↑javascriptのライブラリを利用。 (ぐぐればすぐに見つかると思います) のような方法が考えらます。 *他のサイトで実現できているのたいていのことは、ご自分でも実現可能です。 ソースを見たり解説サイトを見るなどで、仕組みを研究してみましょう。
その他の回答 (2)
- rurino
- ベストアンサー率55% (38/68)
#navi li{ list-style-type: none; line-height: 38px; font-size: 14px; } #navi li a:link { background: #39f;display: block;padding-left: 20px;} #navi li a:visited { background: #39f;display: block;padding-left: 20px;} #navi li a:hover { background: #06c; display: block;padding-left: 20px;} #navi li a:active { background: #39f;display: block;padding-left: 20px;} liでなく a要素の中に記述してあげれば行けるんではないかと思うのですが、いかがでしょうか。
お礼
ありがとうございました! できました。
- fujillin
- ベストアンサー率61% (1594/2576)
CSSはよくわかってませんが… ご提示のものがli要素なので、 #navi li{ list-style-type: none; line-height: 38px; font-size: 14px; padding-left: 50px; background-image: url(back1.gif); } #navi li:hover { background-image: url(back2.gif); } ってことでしょうか? これはこれで、ずれることなく動作すると思いますけれど。(IEは除く) あるいは、HTMLソースが <li><a href="xxx">XXX</a></li> のようになっていて、li要素に背景を設定しておいて、 a:hover { background-image: ~~; } のようにa要素にhoverを設定しているのでしょうか? もしそうであれば、a要素にはpaddingがかかっているのでご質問のようになるのは当然ですよね? 違ってたら失礼。
補足
ご指摘のとおりです・・・。 ということで、li:hoverに書き換えましたが、 今度はまったく動作しなくなりました。 (IE8だと動作すると思うのですが・・・「IEを除く」とは?) #navi li{ list-style-type: none; line-height: 38px; font-size: 14px; padding-left:20px; background-image: url("./image/aaa.png"); background-repeat: no-repeat; height: 40px; width: 200px; } #navi li:hover{ background-image: url("./image/bbb.png"); } 結局、あの不細工な方法しかないのでしょうか・・・。
お礼
2度もありがとうございました。 おかげで思い通りの表示ができました。