• 締切済み

【CSS】マウスオーバー効果有りメニューで現在いる場所によって一部画像変更したい

最近ホームページを作り始めた者です。 現在メニューを画像に変更しようとこちら http://www.iam-strangeman.com/blogs/2006/07/css_mouseover_1.html を参考にメニューを作っています。このページと同じ効果は得られたのですが、 たとえば、現在TOPにいるならTOPを常にmouseover時と同じように 表示させたりするにはどうすれば良いのでしょうか。 CSSファイルを複数作ってページによってファイルを変えるようなことはしたくありません。 読み取られるページによって一部スクリプトを変更させたり、 上から良いように画像を載せたりする方法などはあるのでしょうか。 その他でも良い方法があればどうか宜しくお願いします。

  • CSS
  • 回答数2
  • ありがとう数0

みんなの回答

  • Vitamin4
  • ベストアンサー率0% (0/0)
回答No.2

私のやり方ですが、画像は一枚じゃなくボタンごとの 画像で作ってます。 Y軸だけをどのボタンも同じだけ動かせばいいからです。 (これだと-32px) ---------html---------- <div id="menu"> <ul> <li class="IN1"><a href="#"><span>AAAA</span></a></li> <li><a href="#" class="btn2"><span>BBBB</span></a></li> <li><a href="#" class="btn3"><span>CCCC</span></a></li> <li><a href="#" class="btn4"><span>DDDD</span></a></li> <li><a href="#" class="btn5"><span>EEEE</span></a></li> </ul> </div> ---------css------------- #menu ul{ list-style:none; } #menu li{ display:block; float:left; height:32px;/*ボタンの大きさ*/ width:140px;/*ボタンの大きさ*/ } #menu a{ text-decoration:none; color:#fff; width:140px;/*ボタンの大きさ*/ height:32px;/*ボタンの大きさ*/ display:block; } #menu a:hover{ background-position:0px -32px; } #menu span{ display:block; overflow:hidden; text-indent:-5000px; } #menu .btn1{background:url(images/btn_01.jpg) no-repeat;} #menu .btn2{background:url(images/btn_02.jpg) no-repeat;} #menu .btn3{background:url(images/btn_03.jpg) no-repeat;} #menu .btn4{background:url(images/btn_04.jpg) no-repeat;} #menu .btn5{background:url(images/btn_05.jpg) no-repeat;} #menu .IN1{background:url(images/btn_01.jpg) no-repeat left -32px;} #menu .IN2{background:url(images/btn_02.jpg) no-repeat left -32px;} #menu .IN3{background:url(images/btn_03.jpg) no-repeat left -32px;} #menu .IN4{background:url(images/btn_04.jpg) no-repeat left -32px;} #menu .IN5{background:url(images/btn_05.jpg) no-repeat left -32px;} あとはhoverを固定にしたいmenuにclassのINを変えるだけ。 上記のhtmlはAAAA用で、例えばBBBBのページなら <li><a href="#" class="btn1"><span>AAAA</span></a></li> <li class="IN2><a href="#"><span>BBBB</span></a></li> ってな具合に。

  • naokita
  • ベストアンサー率57% (1008/1745)
回答No.1

1.TOPのheadに書く。 <style type="text/css"> <!-- #header li#nav01 a:link{ background: url(images/csshover.png) 0 -30px; } --> </style> ------------------------------------------------- 透過メニューだっらの話だけど、 単に透過マスクを a:hover や a:link に指定する方がかなり簡単。

関連するQ&A

  • マウスオーバーのメニューについて

    お世話になります。 現在、オンマウスでメニュー画像が表示される仕組みを作成しているのですが、別のメニューにする方法がわかりません。 たとえば、「MAIN」と「LINK」のメニューがあるとして、MAINはMAINのメニュー、LINKはLINKのメニューが表示されるという方法です。 http://memorva.jp/memo/html/js_css_menu_mover.php 上記のURLの方法なのですが。 この場合、cssの数値を変えて(css12ならcss13)スクリプトを追加すればいいのでしょうが、その方法でやっても、同じ画像が表示されます。 (css13のスクリプトを新しく書き加えたのにブラウザでプレビューするとcss12の内容が表示されてしまいます。) ↓HEAD内のCSS設定部分は下記のように分割して書いてます <script language="javascript"> <!-- function mOver(){ css12.style.display = "block"; } function mOut(){ css12.style.display = "none"; } //--> </script> <script language="javascript"> <!-- function mOver(){ css13.style.display = "block"; } function mOut(){ css13.style.display = "none"; } //--> </script> よろしくお願い致します。

    • ベストアンサー
    • HTML
  • CSSでメニューのマウスオーバーをしたいのですが

    下記サイトのようなメニューを外部CSSで作りたいのですが、 このサイトはXHTMLで構成されているサイトだと思うのですが、 HTMLの外部CSSへ書く場合、どのような書き方をするのでしょうか? メニューの素材は、シマ模様の背景を「menu-bg.gif」 赤色▼画像を「menu-hover.gif」として教えて頂けると助かります サイト ​http://www.sato-krefeld.de/​ 因みに前回HTMLの質問ページ(/qa2549277.html)にも同様の質問をさせて頂いたのですが、 そちらでのアドバイスだけでは、少々理解出来ませんでしたので、 再度アドバイスをもらえると大変助かります。 よろしくお願いします。

    • ベストアンサー
    • CSS
  • マウスオーバーのプルダウンメニューについて

    すみません。まったくのしろうとです。教えてください。 会社のWebサイトをリニューアルしようとしていますが、メニューを折りたたみにしたいと考えています。ネットでmouseoverというJavaスクリプトでできるということまでは突き止めました。そしてサンプルも見つけたのですが、やりたいことと合致しなくて困っています。 <script language="JavaScript"><!-- vType = ["hidden","visible"]; function pdMenu(mName) { Menu = document.all[mName].style; Menu.visibility = vType[Menu.visibility.indexOf("hidden") + 1]; } // --></script> </head> <body> <IMG src="newimg/AdAge.gif" onmouseover="pdMenu('Menu1')"><br> <div id="Menu1" style="visibility:hidden" onMouseout="pdMenu('Menu1')"> <a href="http://www.openspc2.org/" >わっ!</a><br> <a href="http://www.impress.co.jp/">ぎゃっ!</a><br> <a href="http://game.gr.jp/" >しょえ~!</a><br> </div> </body> このスクリプトでは、newimg/AdAge.gifという画像の上にマウスをかざすと、言葉がプルダウンで出てきます。わたしがやりたいのは、この画像を単なるテキストに変えることです。HTMLエディタ上でイロイロやってみましたが、うまくいきません。この部分をテキストに変える方法を教えていただけないでしょうか? どうかよろしくお願いします。

  • CSSでのマウスオーバー効果

    質問させて下さい。 サイト上でバナーやテキストに(もしくは並んだバナーとテキスト 両方に)リンクを張っている状態です。 マウスオーバー時に画像とテキストどちらも少し大きく表示される ように下記のようにCSSのコードを想像して書きました。 ------------------------------------------ 略 a:hover { color:#333333; } a:hover img {width:110% ; height:110%;} a:hover font {font-size: 120%;} 略 ------------------------------------------ すると不具合がいくつかあり、お力を貸して欲しいです。 (1)テキスト単独のリンクに関しては、全く動作しない    ようです・・・。ただ、バナーとテキスト両方まとめて    <a>~</a>で囲った場合は一部の場所のみ?動作するみ    たいです。 (2)画像の効果はファイヤーフォックスでは希望通り動作し    ますが、IEだと全く反応しません・・・。 何か簡単な解決方法はないでしょうか? よろしくお願い致します。 (画像を複数用意してJava等でロールオーバーの設定をさせる等は  手間も掛かりますし、コードも多くなるのでなるべくしたくあり  ません。このCSSの記述の変更でどうにかならないでしょうか)

    • ベストアンサー
    • HTML
  • マウスをのせると画像が動くcssについて

    マウスをのせると画像が動くCSSについて質問します。 http://kumacrow.blog111.fc2.com/blog-entry-486.html このページに書いてあることをやりたいです。 通常ですと、<head>内にCSSを記入して、html内でclassで呼び出すと思うのですが、html内に全て書く場合はどうすればいいのでしょうか? <a href="http://~" style=" a:hover { position: relative; top: 5px; left: 5px;}"><img src="(画像のある場所)" /></a> このような書き方では上手くいきません。 どのように書けばいいのか教えてください。

  • CSSでの画像メニューの設定について

    現在CSSの勉強中です。 外部CSSで画像を使用してリンクメニューを作ったのですが、 やり方があっているか確認をお願いしたいのですが。 off時の画像(白)、ページのin時の画像(赤)、hover(青)の画像を用意しています。 CSS部分▼ .navi01 a{ width:102px; height:43px; background-image:url(common/img/navi_top_off.gif); background-repeat:no-repeat; } .navi01_on a{ width:102px; height:43px; background-image:url(common/img/navi_top_on.gif); background-repeat:no-repeat; } .navi01 a:hover{ width:102px; height:43px; background-image:url(common/img/navi_top_hover.gif); background-repeat:no-repeat; } .navi01_on a:hover{ width:102px; height:43px; background-image:url(common/img/navi_top_hover.gif); background-repeat:no-repeat; } HTML部分▼ <li class="navi01_on"><a href="index.html" title="トップページ"><span class="none">トップページ</span></a></li> <li class="navi02"><a href="work.html" title="仕事内容"><span class="none">仕事内容</span></a></li> CSSの講座のページなどを見ると、設定がもうすこし少なくても うまく動いていたりして、無駄な部分があるのではと思っています。 今の私の知識ではどこが悪いのか分からないので、 教えて頂けると幸いです。 (もし良い講座のページ、本がありましたら教えて頂ければと思います。) 宜しくお願い致します。

    • ベストアンサー
    • CSS
  • CSSでのマウスオーバーの画像切り替えについて

    現在横型のメニューをCSSで作成しています。 配置はうまく出来たのですが、ロールオーバーがうまくいきません。 マウスオーバーしても画像が切り替わりません。 CSSの記述をどのようにすればいいでしょうか? 以下ソース ◇HTML <body> <div id = "wrap"> <div class = "header"> <div id = "h_wrap"> </div> <div id = "u_wrap"> <ul id="hnavi"> <li id="hnavili1"><a href="#"><img src="img/top-menu-1.gif" width="149" height="60"></a></li> <li id="hnavili2"><img src="img/top-menu-2.gif" width="150" height="60"></li> <li id="hnavili3"><img src="img/top-menu-3.gif" width="151" height="60"></li> <li id="hnavili4"><img src="img/top-menu-4.gif" width="149" height="60"></li> <li id="hnavili5"><img src="img/top-menu-5.gif" width="150" height="60"></li> <li id="hnavili6"><img src="img/top-menu-6.gif" width="151" height="60"></li> </ul> </div> </div><!-- /header --> <div class = "topwrap"> topimg </div><!-- /topwrap --> <div id = "inner"> <div = "mainwrap"> mainwrap </div><!-- /mainwrap --> <div = "sidewrap"> sidewrap </div><!-- /sidewrap --> <div class = "clear"><hr /></div> </div><!-- /inner --> <div id = "footer"> footer </div><!-- /footer --> </div><!-- /wrap --> </body> ◇CSS body {text-align:center;} #wrap {width:900px; margin:0 auto; text-align:left; } .header {height:130px; } .topwrap {height: 300px;} #inner { margin:0 10px; } #mainwrap {width:690px; float:left; } #sidewrap {width:170px; float:right;} .clear {clear: both;} .clear hr {display: none;} .footer {height:118px;} /*----------------------------------------------------- headder ---------------------------------------------------- */ #h_wrap {height: 80px;} #u_wrap { height: 60px; margin: 0; padding: 0; } #hnavi { margin: 0; padding: 0; } #hnavili1 { display: inline; list-style:none; float: left; margin: 0; padding: 0; } #hnavili1 a:hover {background-image : url(../img/top-menu-1o.gif); background-position : left top; } .hnavili2 { display: inline; list-style:none; float: left; margin: 0; padding: 0; } #hnavili2 a:hover {background-image : url(../img/top-menu-1o.gif); background-position : left top; } .hnavili3 { display: inline; list-style:none; float: left; margin: 0; padding: 0; } #hnavili3 a:hover {background-image : url(../img/top-menu-1o.gif); background-position : left top; } .hnavili4 { display: inline; list-style:none; float: left; margin: 0; padding: 0; } #hnavili4 a:hover {background-image : url(../img/top-menu-1o.gif); background-position : left top; } .hnavili5 { display: inline; list-style:none; float: left; margin: 0; padding: 0; } #hnavili5 a:hover {background-image : url(../img/top-menu-1o.gif); background-position : left top; } .hnavili6 { display: inline; list-style:none; float: left; margin: 0; padding: 0; } #hnavili6 a:hover {background-image : url(../img/top-menu-1o.gif); background-position : left top; } 宜しくお願いします。

  • マウスポインタをCSSで変更

    ホームページ上で表示されるポインタを 任意のカーソル(外部ファイル)を使い、ページ表示させたいのですが、 通常のカーソルは・・・ cursor: url(" URL "); で反映されたのですが、リンクにカーソルを乗せた時の指ポインタを指定のカーソルファイルに変更する方法がわかりません。 各リンクタグにポインタ変更を加える方法は見つけたのですが、 ページ全体のリンクのポインタをCSSで指定する方法はないでしょうか?

  • マウスオーバーで大きい画像が切り替わる設定について

    同一ページで複数のサムネイルにマウスオーバーしたら 大きな画像が切り替わる設定をしたいのですが・・・ 下記サイト(同一ページで複数のスワップイメージ(ギャラリー)を見せたい)の 『フェードとかない普通のバージョン』を参考にしております。 下記サイトのスクリプトでは、サムネイルをクリックして画像の切り替えを 実行するのですが、サムネイルにマウスを置くだけ(クリックなし)に変更する ことは可能でしょうか? JQuery $(function () { $('div.swap li a').click(function (e) { e.preventDefault(); var imagePath = $(this).attr('href'); var mainImage = $(this).parents('div.swap').find('p img'); $(mainImage).attr('src', imagePath); }); }); 参考サイト http://depthcode.com/2010/10/swap.html クリックなしに変更可能であればご教授いただけないでしょうか。 よろしくお願いします。

  • CSSでページ毎に見出し画像を変更したい

    こんにちは。 今CSSの勉強をしながらサイトを作っています。 まだまだ基本知識くらいしかなく応用出来ず困っています。 各ページのタイトル(見出し<h●>)を背景画像に設定して表示していますが、タイトルがページ毎に違うため1ページ毎にCSSを作っています。各ページの見出し画像を一つのCSSまとめて記述する方法はないでしょうか? よろしくお願い致します。

専門家に質問してみよう