• 締切済み

メニューのロールオーバーについて

メニューボタンをロールオーバーさせようと思った時 現在の主流テクニックはどのような方法なのでしょう? 一時期cssで背景画像を変える方法が流行りましたが、 text-indent; -9999pxを使って文字を消すようなやり方は もう古い(意味がない)でしょうか。 素直に画像を埋め込んで使おうかなーとも思っています。 そうすると、Javascriptを使うやり方が無難でしょうか? cssを使うなら、ロールオーバーで、透明画像をかぶせるのもいいかな?とか考えていますが。 ご意見お聞かせくださいませ。

noname#97357
noname#97357
  • CSS
  • 回答数1
  • ありがとう数2

みんなの回答

noname#66720
noname#66720
回答No.1

個人的なオススメになりますが、display:list-item;を使うのが良いと思います。 例えば200×100の画像を表示しようとすると。 <p><span>ああああ</span></p> p { width:200px; height:100px; overflow:hidden; } span { display:list-item; list-style:url(#) inside; } こんな感じで。 多少応用は必要で、かつIE5.5以下は切り捨てることになりますが、できないこともないです。 とくにこだわらない場合はJavascriptで十分だと思いますが。

noname#97357
質問者

お礼

この場合リストに背景画像をつけるってことでしょうか? ロールオーバーはどのようにされるのでしょうか? display:list-item;をお勧めとのことですが 私はメニューを作る時は<li>を使って作っています。 <p><span>ああああ</span></p>でわざわざdisplay:list-item;を設定しなくてもいいと思うのですが…。

関連するQ&A

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

    表題の件ですが、やり方はとてもたくさんあります。 JavaScriptやcssなど。 JavaScriptの場合、検索結果で、メニューとして、JSを使用した箇所が表示されません。 画像置き換えの場合text-indent:-9999px;やdisplay:none;とした際、評価が下がるとのことです。 どちらにもデメリットがあるようですが、今主流となっているマウスオーバーでの画像の切り替えはどのようなものでしょうか。 ご協力お願いいたします。

    • ベストアンサー
    • CSS
  • オンマウスで画像変更(CSS)

    リンク画像にカーソルを乗せると画像が変わる、というものをやりたいのです。 シンプルに記述できる分JavaScriptよりもCSSの方がいいのかなと思ったのですが、 CSSだとimgタグではなくbackgroundを入れ替える形になり、 そうするとaタグでテキストを使い、そのテキストを隠さなければいけません。 display:none;やtext-indent:-9999px;は使いたくないのですが、 他の方法はありますか? また、こういうオンマウスで画像変更ってJavaScriptとCSSどちらが主流なのでしょうか? よろしくお願いします。

    • 締切済み
    • CSS
  • CSS による画像を使ったロールオーバー

    よろしくお願いします。 CSSを使って、画像のロールオーバーをしようとしています。 HTMLの構成としては、 タイトル画像(幅800px)の下に、CSSを使って作った ロールオーバーするメニューを横並びで配置したいと思っています。 http://edo-freiheit.sakura.ne.jp/eblog/2006/06/css_2.html のサイトを参考に(ほとんどまる写しですが)して、 作成してみたのですが、HTML全体を左寄せしても、中央寄せ してもロールオーバーしたメニューの項目の左側に隙間というか 余白が入ってしまい、上のタイトル画像とズレが生じててしまいます。 この余白をなくす方法がありましたらお教え下さい。

    • ベストアンサー
    • HTML
  • <li>タグを使って横並びメニューボタンを作成する際ベストな手法とは?

    CSSで、横並びのメニューボタンを作成しています。 (文字も画像にしています。) imgタグで並べるのではなく、liタグを使って、テキストは表示しないようにしたいと思い、下記のようなソースで記述しました。 /*htmlソース*/ <li class="tmenu01"><a href="sample">はじめに</a></li> /*cssソース*/ li.tmenu01 { display:block; width:126px; height:31px; background:url(image/menu01.gif) no-repeat; text-indent:-9999px; float: left; } しかし、text-indent:-9999px;とfloat: left;をいっしょに使用すると、背景画像・文字とも表示されなくなってしまいます。 いろいろネットを調べてみたのですが、文字を飛ばす+横並びのバージョンの解決方法が見つからず、方法がわかりません。 いい方法がありましたら、どなたか教えてください…m(_ _)m

  • 画像ロールオーバーからテキストと背景のロールオーバーへ

    リンクメニューの部分ですが、現在画像でロールオーバーさせている(背景色と文字色が変化する)のですが、そのリンク部分の文字はテキストにするようにとの指示がありました。 画像ではなくテキストにした場合に背景色と文字色が変化するにはどうすればよいでしょうか? 下記左メニュー部分です。 http://www8.ocn.ne.jp/~soken-33/kono/ よろしくお願いいたします。

  • Javascriptを使わないロールオーバーのやり方

    CSSのみでロールオーバーの指定をしたいとき、皆さんはどのような方法を使われていますか? ・a:hoverで画像を入れ替える (ボタン画像を背景に指定し、文字をインデントで飛ばしている時) ・a:hoverでボタン部分の背景をnoneにして、さらに後ろにある背景を表示させる ・通常時とhover時用の画像を一枚の画像にまとめて背景に指定し、a:hover時に背景画像を移動させる などなど。 いろいろとやり方はあるかと思いますが、皆さんがどのようにされているか教えていただけるとうれしいです。 よろしくお願いします。

  • CSS・HTMLのロールオーバーについて

    テキストリンクにロールオーバーで任意の背景画像を入れるにはどうしたら良いでしょうか。 cssにて:hover擬似クラスで背景画像を指示し、テキストリンクにカーソルを合わせると背景画像が表示されるところまでは出来ましたが、リンク毎に画像を変える方法はありますでしょうか。(:hoverの擬似クラスを増やせば出来るとは思いますが、猥雑になってしまうので…) リンクが画像だったらonmouseoverで指定したことがありますが…。浅学なりに調べながら書いておりましたが、行き詰まってしまいました。 どなたかお知恵をおかしいただけますと幸いです。

  • cssスプライトで作ったボタンがIE6でロールオーバー時に消える

    CSSでロールオーバーするボタンを作りました。(CSSスプライトという手法で作っています) ところが、IE6でのみ、ロールオーバー時に、ボタン画像が消えます。 ためしにjavascriptで先にキャッシュを読み込ませてみましたが、やっぱり消えてしまいました。 どうしたらIE6でも正常に表示できますか?

  • CSSのロールオーバーがIEで崩れます

    CSSのロールオーバーでメニューを制作しています。 背景画像のポジションを変えて、1枚の画像でロールオーバーさせるというよくあるものです。 Mac+Safari、Firefoxではきちんと表示されるのですが、 Win+IE7だと1枚の画像がそのまま表示されてしまい、ロールオーバーになりません。 (IE7しか自宅にないので他のバージョンのIEではどうなるかわかりません。) しかもline-height: 140%;という一行を削除したら1枚べろんと表示されていたところが半分程かくれました。 ロールオーバー自体でなく、他の部分がおかしいのでしょうか? ちなみに元の画像の高さは20pxで、10pxの画像を上下につなげています。 タイトル画像が120x26で、その横に絶対配置で並べています。 ど素人が手打ちで書いた文章なのでお恥ずかしいのですが、 問題の部分のCSSとhtml、全体のCSS、を以下に載せておきますのでどうぞご教授ください。 (メニュー項目の数等一部省略しているところがあります。) よろしくお願い致します。 /*CSSの記述*/ body{ margin: 0px; text-align: center; } table,tr,td,p,ul,li,h1,h2,h3,h4,h5,h6,input,textarea { line-height; 140%; color: #696969; font-family:"MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"; font-size: 10pt; } div#wrapper{ width: 500px; margin: 40px auto; text-align: left; } div#header{ width: 100%; position: relative; margin-bottom: 30px; } ul#menu{ position: absolute; left: 150px; top: 10px; width: 350px; height: 10px; } ul#menu li{ float: left; height: 10px; margin-right: 15px; } ul#menu li a{ margin: 0; padding: 0; height: 10px; display: block; text-indent: -9999px; outline: none; background-repeat: no-repeat; } ul#menu li a:link, ul#menu li a:visited{ background-position: left top; } ul#menu li a:hover, ul#menu li a:active{ background-position: left bottom; } ul#menu li#top a{ background-image: url(../img/top.gif); width: 32px; } ul#menu li#about a{ background-image: url(../img/about.gif); width: 48px; } ul#menu li#pict a{ background-image: url(../img/pict.gif); width: 37px; } /*HTMLの記述*/ <div id="wrapper"> <div id="header"> <h1><IMG SRC = "タイトル画像" ALT = "" border="0"></h1> <ul id="menu"> <li id="top"><a href="top.html">top</a></li> <li id="about"><a href="about.html">about</a></li> <li id="pict"><a href="pict.html">pict</a></li> </ul> </div>  ~略~ </div>

    • ベストアンサー
    • CSS
  • 背景画像へのリンク

    CSSで背景画像をリンクさせているのですが 文字が出てきて困っています。 ソースは以下の通りです。 文字が出ないようにするにはどうしたらいいのでしょうか。 <div id="side"> <div class="menu_content"> <ul class="menu"> <li class="menu_top"><a href="index.html">トップページ</a></li></ul> </div> </div> .menu_content li{display:block; text-indent:-9999px; font-size:0px; width:206px;height:68px; text-indent:-9999px;} li.menu_top a{display:block; width:406px;height:128px; text-indent: -9999px; background:url("css/menu_top.gif") bottom left no-repeat;}

専門家に質問してみよう