• 締切済み

後付けでドロップダウンメニューを作りたい

現在画像で作った横並びのナビゲーションメニューがあります。 そこへマウスポントすることでドロップダウンのメニュー(出来れば半透明)を追加したいのですが うまくいきません。 既存のコードは以下の通りです。 --------------------------------------------------------------------- 【css】 #globalnavi{ margin: 0; padding: 0; width: 994px; height: 50px; background-image: url(../image/button/button-bg.png); background-repeat: no-repeat; } #globalnavi ul{ list-style-type: none; margin: 0; padding: 0; } #globalnavi li{ text-indent: -9999px; float:left; width: 142px; margin: 0; padding: 0; } #globalnavi a{ display: block; width: 100%; height: 50px; background-image: url(../image/button/button.png); background-repeat: no-repeat; } #menu1 a{background-position: 0 0;} #menu2 a{background-position: -142px 0;} #menu3 a{background-position: -284px 0;} #menu4 a{background-position: -426px 0;} #menu5 a{background-position: -568px 0;} #menu6 a{background-position: -710px 0;} #menu7 a{background-position: -852px 0;} #globalnavi a:hover{ background-image: url(../image/button/button.png); background-repeat: no-repeat; } #menu1 a:hover{background-position: 0 -50px;} #menu2 a:hover{background-position: -142px -50px;} #menu3 a:hover{background-position: -284px -50px;} #menu4 a:hover{background-position: -426px -50px;} #menu5 a:hover{background-position: -568px -50px;} #menu6 a:hover{background-position: -710px -50px;} #menu7 a:hover{background-position: -852px -50px;} 【html】 <nav id="globalnavi"> <ul> <li id="menu1"><a href="menu1.html" title="メニュー1">メニュー1</a></li> <li id="menu2"><a href="menu2.html" title="メニュー2">メニュー2</a></li> <li id="menu3"><a href="menu3.html" title="メニュー3">メニュー3</a></li> <li id="menu4"><a href="menu4.html" title="メニュー4">メニュー4</a></li> <li id="menu5"><a href="menu5.html" title="メニュー5">メニュー5</a></li> <li id="menu6"><a href="menu6.html" title="メニュー6">メニュー6</a></li> <li id="menu7"><a href="menu7.html" title="メニュー7">メニュー7</a></li> </ul> </nav> --------------------------------------------------------------------- どうぞ宜しくお願い致します。

みんなの回答

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.2

>ドロップダウンのメニュー  とは階層になっているメニューを:hoverなどの動作で広げることを言う。  階層でないHTMLでは出来ないです。 ※あなたのは、背景を変えたいだけのように見える。  単純に背景を変えたいだけでしたら・・、スプライトを使う。 <header>  <nav>   <ul>    <li><a href="menu1.html">メニュー1</a></li>    <li><a href="menu2.html">メニュー2</a></li>    <li><a href="menu3.html">メニュー3</a></li>    <li><a href="menu4.html">メニュー4</a></li>    <li><a href="menu5.html">メニュー5</a></li>    <li><a href="menu6.html">メニュー6</a></li>    <li><a href="menu7.html">メニュー7</a></li>   </ul>  </nav> </header> ※いちいちデザインのためだけにidなんてつけてはならない!!  何のためのスタイルシートか分からなくなる。 header nav ol,header nav ol li{margin:0;padding:0;} header nav ol{ width: 994px; height: 50px; background-image: url(../image/button/button-bg.png); font-size:0; } header nav ol li{ width: 142px; margin: 0; position:relative; font-size:16px; } header nav ol li a{ display: block;width: 100%;height: 50px; background-image: url(../image/button/button.png); overflow:hidden; z-index:-1000px; } nav ol li a[href="menue1.html"]{background-position: 0 0;} nav ol li a[href="menue2.html"]{background-position: -142px 0;} nav ol li a[href="menue3.html"]{background-position: -284px 0;} nav ol li a[href="menue4.html"]{background-position: -426px 0;} nav ol li a[href="menue5.html"]{background-position: -568px 0;} nav ol li a[href="menue6.html"]{background-position: -710px 0;} nav ol li a[href="menue7.html"]{background-position: -852px 0;} nav ol li a[href="menue1.html"]:hover{background-position: 0 -50px;} nav ol li a[href="menue2.html"]:hover{background-position: -142px -50px;} nav ol li a[href="menue3.html"]:hover{background-position: -284px -50px;} nav ol li a[href="menue4.html"]:hover{background-position: -426px -50px;} nav ol li a[href="menue5.html"]:hover{background-position: -568px -50px;} nav ol li a[href="menue6.html"]:hover{background-position: -710px -50px;} nav ol li a[href="menue7.html"]:hover{background-position: -852px -50px;}

回答No.1

ulliを入れ子にすれば可能です。 既存のソースのネガティブなポジションが少し複雑だったので簡単に書き直させてもらいました。 とりあえず仕組みはこうなります。 button.pngやbutton-bg.pngを乗せた場合はわからないのでそちらで調整してください。 【CSS】 nav ul,nav ul li{ padding:0; margin:0; list-style-type:none } nav ul li { display:inline-block; } nav { width: 994px; background: url(../image/button/button-bg.png) no-repeat #000; } nav a { text-decoration: none; display: block; } nav .parent a { background: url(../image/button/button.png) no-repeat #f00; } nav .parent:hover ul { display: inline-block; } nav .child { position: absolute; width: 150px; top: 25px; display: none; } nav .child a { color: #fff; padding: 10px 15px; display: inline-block; background: url(../image/button/button.png) no-repeat #000; } 【HTML】 <nav id="globalnavi"> __<ul> ____<li id="menu1" class="parent"> ______<a href="#">メニュー1</a> ______<ul class="child"> ________<li><a href="#">サブメニュー1-1</a></li> ________<li><a href="#">サブメニュー1-2</a></li> ________<li><a href="#">サブメニュー1-3</a></li> ______</ul> ____</li> ____<li id="menu2" class="parent"> ______<a href="#">メニュー2</a> ______<ul class="child"> ________<li><a href="#">サブメニュー2-1</a></li> ________<li><a href="#">サブメニュー2-2</a></li> ________<li><a href="#">サブメニュー3-3</a></li> ______</ul> ____</li> ____<li id="menu3" class="parent"> ______<a href="#">メニュー3</a> ______<ul class="child"> ________<li><a href="#">サブメニュー3-1</a></li> ________<li><a href="#">サブメニュー3-2</a></li> ________<li><a href="#">サブメニュー3-3</a></li> ______</ul> ____</li> __</ul> </nav> 整形の維持のためインデントにアンダーバーを入れました。

toshisan02
質問者

お礼

大変遅くなり申し訳ありません。 遅くなりすぎですが・・・ ありがとうございました。 結果お陰様で何とかうまくいきました。 ありがとございました。

関連するQ&A

  • メニューをJavaScriptで一括更新させたい

    いつもお世話になっております。 ページが増えてしまったので、 横並びのメニューをjavaScriptで一括更新できるようにしたいのですが、 JavaScriptが勉強不足でうまく記述できません。(これから勉強していくつもりです) 今回は急ぎのため時間がなく… どうかアドバイス等、記述を教えていただけないでしょうか? 宜しくお願いいたします。 現在メニューはこのように1ページごと書いてあります。 <div id="globalnavi"> <ul> <li id="menu1"><a href="#">Home</a></li> <li id="menu2"><a href="#">menu</a></li> <li id="menu3"><a href="#">menu</a></li> <li id="menu4"><a href="#">menu</a></li> <li id="menu5"><a href="#">menu</a></li> <li id="menu6"><a href="#">menu</a></li> <li id="menu7"><a href="#">menu</a></li> </ul> </div> CSS↓----------------------------------------------- #globalnavi{ margin: 0; padding: 0; width: ***; height: 40px; } #globalnavi ul{ list-style-type: none; margin: 0; padding: 0; } #globalnavi li{ text-indent: -9999px; float:left; width: 100px; margin: 0; padding: 0; } #globalnavi a{ display: block; width: 100%; height: 40px; background-image: url(画像のパス); background-repeat: no-repeat; } #menu1 a{background-position: 0 0;} #menu2 a{background-position: -100px 0;} #menu3 a{background-position: -200px 0;} #menu4 a{background-position: -300px 0;} #menu5 a{background-position: -400px 0;} #menu6 a{background-position: -500px 0;} #menu7 a{background-position: -600px 0;} #globalnavi a:hover{ background-image: url(画像のパス); background-repeat: no-repeat; } #menu1 a:hover{background-position: 0 -40px;} #menu2 a:hover{background-position: -100px -40px;} #menu3 a:hover{background-position: -200px -40px;} #menu4 a:hover{background-position: -300px -40px;} #menu5 a:hover{background-position: -400px -40px;} #menu6 a:hover{background-position: -500px -40px;} #menu7 a:hover{background-position: -600px -40px;}

  • 【CSS】float横並びメニューに余白ができてしまいます

    リストをfoat:leftさせ横並びのメニューを作っています.下記画像の赤枠の幅に(包含されているdivのボーダーを赤線にしています)メニューをぴったり収めたいのですが,左右に余白ができてしまいます. いろいろネット等で調べてみましたが原因がわかりません.ご教授よろしくおねがいします. ------CSSソース----------------------------------------------------- /*グローバルナビゲーション */ .globalnavi{ width:770px;   height:30px;   margin:0;   padding:0; border:1px solid #cc0000; } .gloabalnavi ul{ height:30px; margin:0; padding:0; background:#ffffff; list-style:none; } .globalnavi li{ float:left; margin:0; padding:0; } .globalnavi span{ display:none; } .globalnavi a{ height:30px; display:block; background-repeat:no-repeat; } li#m1{ width:154px; background-image:url(../image2/menu1.gif); background-position:0px -30px; } li#m1 a{ background-image:url(../image2/menu1.gif); } li#m1 a:hover{ background-image:none; } li#m2{ width:154px; background-image:url(../image2/menu2.gif); background-position:0px -30px; } li#m2 a{ background-image:url(../image2/menu2.gif); } li#m2 a:hover{ background-image:none; } li#m3{ width:154px; background-image:url(../image2/menu3.gif); background-position:0px -30px; } li#m3 a{ background-image:url(../image2/menu3.gif); } li#m3 a:hover{ background-image:none; } li#m4{ width:154px; background-image:url(../image2/menu4.gif); background-position:0px -30px; } li#m4 a{ background-image:url(../image2/menu4.gif); } li#m4 a:hover{ background-image:none; } li#m5{ width:100px; background-image:url(../image2/menu5.gif); background-position:0px -30px; } li#m5 a{ background-image:url(../image2/menu5.gif); } li#m5 a:hover{ background-image:none; } ------------------------------------------------------------------ -----HTML ソース-------------------------------------------------- <div class="globalnavi"> <ul> <li id="m1" title="研究室紹介へのリンク"><a href="#"><span>大学紹介</span></a></li> <li id="m2" title="スタッフへのリンク"><a href="#"><span>スタッフ</span></a></li> <li id="m3" title="研究設備へのリンク"><a href="#"><span>研究設備</span></a></li> <li id="m4" title="アーカイブへのリンク"><a href="#"><span>アーカイブ</span></a></li> <li id="m5" title="外部リンクへのリンク"><a href="#"><span>リンク</span></a></li> </ul> </div><!--div globalnavi finish--> ------------------------------------------------------------------

    • ベストアンサー
    • HTML
  • ドロップダウンメニューについて

    apycomでhttp://apycom.com/menus/1-yellow-green.htmlの ドロップダウンメニューをダウンロードして設定しているのですが、サブメニューのリンク文字の変更方法が分からなくて困っています。 サブメニューの背景を変更したのでリンクの文字をもっとハッキリ見える色に変更したいです。 マウスが乗った時の文字の色も変更できません。 昨日から色々やってるのですがどうしても解決できないのでお聞きしました。 よろしくお願いします。 /** ********************************************* * Prototype of styles for horizontal CSS-menu * @data 30.06.2009 ********************************************* * (X)HTML-scheme: * <div id="menu"> * <ul class="menu"> * <li><a href="#" class="parent"><span>level 1</span></a> * <ul> * <li><a href="#" class="parent"><span>level 2</span></a> * <ul><li><a href="#"><span>level 3</span></a></li></ul> * </li> * </ul> * </li> * <li class="last"><a href="#"><span>level 1</span></a></li> * </ul> * </div> ********************************************* */ /* menu::base */ div#menu { height:41px; background : transparent url(main-bg.png) repeat-x scroll 0% 0%; } div#menu ul { margin: 0; padding: 0; list-style: none; float: left; } div#menu ul.menu { padding-left: 30px; } div#menu li { position: relative; z-index: 9; margin: 0; padding: 0 5px 0 0; display: block; float: left; } div#menu li:hover >ul { left: -2px; } div#menu a { position: relative; z-index: 10; height: 41px; display: block; float: left; line-height: 41px; text-decoration: none; font: normal 12px Trebuchet MS; } div#menu a:hover, div#menu a:hover span { color: #fff; } div#menu li.current a {} div#menu span { display: block; cursor: pointer; background-repeat: no-repeat; background-position: 95% 0; } div#menu ul ul a.parent span { background-position:95% 8px; background-image : url(item-pointer.gif); } div#menu ul ul a:hover.parent span { background-image : url(item-pointer-mover.gif); } /* menu::level1 */ div#menu a { padding: 0 10px 0 10px; line-height: 30px; color : rgb(56, 56, 56); } div#menu span { margin-top: 5px; }/**@replace#1*/ div#menu li { background : transparent url(main-delimiter.png) no-repeat scroll 98% 4px; } div#menu li.last { background: none; } /* menu::level2 */ div#menu ul ul li { background: none; } div#menu ul ul { position: absolute; top: 38px; left: -999em; width: 163px; padding: 5px 0 0 0; background : rgb(179, 221, 81) none repeat scroll 0% 0%; margin-top:1px; } div#menu ul ul a { padding: 0 0 0 15px; height: auto; float: none; display: block; line-height: 24px; color : rgb(56, 56, 56); } div#menu ul ul span { margin-top: 0; padding-right: 15px; _padding-right: 20px; color : rgb(56, 56, 56); } div#menu ul ul a:hover span { color: #fff; } div#menu ul ul li.last { background: none; } div#menu ul ul li { width: 100%; } /* menu::level3 */ div#menu ul ul ul { padding: 0; margin: -38px 0 0 163px !important; margin-left:172px; color: #FFFFFF; } /* colors */ div#menu ul ul ul { background: rgb(41,41,41); } div#menu ul ul ul ul { background: rgb(38,38,38); } div#menu ul ul ul ul { background: rgb(35,35,35); } /* lava lamp */ div#menu li.back { background : transparent url(lava.png) no-repeat scroll right -44px !important; background-image : url(lava.gif); width: 13px; height: 44px; z-index: 8; position: absolute; margin: -1px 0 0 -5px; } div#menu li.back .left { background : transparent url(lava.png) no-repeat scroll left top !important; background-image : url(lava.gif); height: 44px; margin-right: 8px; } 【html】 <div id="menu"> <ul class="menu"> <li><a href="#"><span>Home</span></a> <li><a href="#" class="parent"><span>商品紹介</span></a> <ul> <li><a href="#"><span>コンクリート</span></a> <li><a href="#"><span>木材</span></a> <li><a href="#"><span>アクセサリー</span></a> <li><a href="#"><span>砂</span></a> <li><a href="#"><span>フード</span></a>

  • ドロップダウンメニュー

    ドロップダウンメニュについてお伺いします。下記、サンプルがWebにあったのですが メニュー1、メニュー2、メニュー3をマウスオーバーした時に選択肢が表示されます。 しかしながら横に最大3個未満の場合、余分なスペースができてしまいます。 この余分なスペースを出さないで存在する選択肢の分だけ表示表示させるようなことは できるのでしょうか。 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <style type="text/css"> #header-wrapper { height: 60px; } #header { height: 60px; } #site-title { padding: 10px 0 0 0; } h5 { margin-top: 20px; } #main { clear: left; margin: 20px auto; padding: 5px 20px; width: 900px; } h3 { font-size: 20px; } #sample ul { list-style:none; } #menu li { position: relative; float: left; margin: 0; padding: 5px; width: 200px; height: 20px; border: solid 1px #ccc; font-weight: bold; } #menu li:hover { color: #fff; background: #333; } #menu li ul { display: none; position: absolute; top: 30px; left: -1px; padding: 5px; width: 600px; background: #eee; border: solid 1px #ccc; } #menu li ul li { float:left; margin: 0; padding: 0; width: 200px; border: none; } #menu li ul li a { display: inline-block; width: 200px; height: 20px; } #menu li ul li a:hover { background: #999; color: #fff; } </style> <script type="text/javascript" src="http://www.google.com/jsapi"></script> <script type="text/javascript">google.load("jquery", "1.7");</script> <script type="text/javascript"> $(function() { $("#menu li").hover(function() { $(this).children('ul').show(); //$('#menu li ul').css('width', '200px'); }, function() { $(this).children('ul').hide(); }); }); </script> </head> <body class="archive date col-2-right fixed loggedin browser-chrome"> <div id="page"> <div id="main"> <div id="sample"> <ul id="menu"> <li id="menu1">メニュー1 <ul> <li><a href="#">サブメニュー1-1</a></li> </ul> </li> <li id="menu2">メニュー2 <ul> <li><a href="#">サブメニュー2-1</a></li> <li><a href="#">サブメニュー2-2</a></li> </ul> </li> <li id="menu3">メニュー3 <ul> <li><a href="#">サブメニュー3-1</a></li> <li><a href="#">サブメニュー3-2</a></li> <li><a href="#">サブメニュー3-3</a></li> <li><a href="#">サブメニュー3-4</a></li> </ul> </li> </ul> </div> </div><!--main--> </div><!--page--> </body> </html>

    • 締切済み
    • CSS
  • ロールオーバーで画像がずれない方法

    初めてWebサイトを作成しており、今はグローバルナビゲーションを作成していますが、ロールオーバーしたときに、位置が微妙にずれてしまいます。 ちなみに画像の作成は、フォトショップCS6で次のように作成しました。 (1)カンバスサイズを、幅800px、縦60pxで作成 (2)長方形ツールを使い、境界線ありの画像を5つ作成し、手動で横に整列させる。 ※一つ当たりのサイズは幅160px、縦30pxなので、全体の幅は800、縦30です。 (3)ロールオーバー用の画像のために、上記5つのボタンを複製し、色を変える (4)通常表示用とロールオーバー用の画像を、手動で上下に連結させる ※これで幅800px、縦60pxになったので、カンバスサイズと同じサイズになりました。 (5)手動にて連結した画像をカンバスサイズの位置に合わせる (6)テキストツールで会社概要など5つ作成し、上5つの画像の中心に合わせる (7)上5つにある会社概要などの文字を一括コピーする。 (8)一括コピーした文字を、手動で下5つの画像の中心へ合わせる ※大変でしたが、グリッド機能を使って、調整しました。 以上のような流れで全体のグローバルナビゲーションのボタンを作成し、そして次の用にHTMLとCSSを入力したのですが、ロールオーバーした時に、ボタンも文字も微妙にすれてしまいます。 フォトショップの使い方が悪いのか、HTMLとCSSの使い方が悪いのか、どちらなのかわかりません。 いろいろな方からご教示を頂きたいです。本当にお願い致します!! <!-- /以下HTML --> <ul id="globalnavi"> <li id="menu1"><a href="#"></a></li> <li id="menu2"><a href="#"></a></li> <li id="menu3"><a href="#"></a></li> <li id="menu4"><a href="#"></a></li> <li id="menu5"><a href="#"></a></li> </ul> <!-- /以下CSS --> #globalnavi { margin: 0; padding: 0; } #globalnavi li { width: 160px; height: 30px; float:left; text-align: center; line-height: 3.5; margin:0; padding-left:0; } #globalnavi a { float:left; display: block; text-decoration: none; width: 160px; height: 30px; background-image: url(./img/menu-all.gif); background-repeat: no-repeat; margin:0; padding-left:0; } #menu1 a { background-position: 0px 0px; } #menu2 a { background-position: -160px 0px; } #menu3 a { background-position: -320px 0px; } #menu4 a { background-position: -480px 0px; } #menu5 a { background-position: -640px 0px; } #globalnavi a:hover { text-decoration: none; background-image: url(./img/menu-all.gif); background-repeat: no-repeat; margin:0; padding-left:0; } #menu1 a:hover { background-position: 0px -30px; } #menu2 a:hover { background-position: -160px -30px; } #menu3 a:hover { background-position: -320px -30px; } #menu4 a:hover{ background-position: -480px -30px; } #menu5 a:hover{ background-position: -640px -30px; }

    • ベストアンサー
    • CSS
  • IE9で画像のロールオーバーが上手く表示されない

    CSSで一枚の画像のみを使用しロールオーバーをしてみたのですが、Google Chromeではなんとか再現できたものの、IE9で確認してみたところ、画像が全て同じ物(左上の画像)になっていました(マウスを乗せても変化なし) 初心者なので初歩的な部分でつまずいている可能性もあると思いますが、どうかよろしくお願いいたします 以下HTMLとCSSです <body> <ul id="globalnavi"> <li><a href="./info.html" target="main">info</a></li> <li><a href="./main.html" target="main">main</a></li> <li><a href="./blog.html" target="sub">blog</a></li> <li><a href="./link.html" target="main">link</a></li> <li><a href="./index.html" target="top">index</a></li> </ul> </body> #globalnavi,#globalnavi li{ display:block;list-style:none; margin: 0;padding: 0; width: 96px; } #globalnavi li{ width: 96px;height: 79px; display:inline-block; position:relative; } #globalnavi a { display: block; text-indent: -9999px; text-decoration: none; width:100%;height:100%; background: url(./img/1.png) no-repeat 0 0 ; text-decoration: none; } #globalnavi a[href="./info.html"] { background-position: 0px 0px; } #globalnavi a[href="./main.html"] { background-position: 0px -79px; } #globalnavi a[href="./blog.html"] { background-position: 0px -158px; } #globalnavi a[href="./link.html"] { background-position: 0px -237px; } #globalnavi a[href="./index.html"] { background-position: 0px -316px; } #globalnavi a[href="./info.html"]:hover, #globalnavi a[href="./info.html"]:focus { background-position: -96px -0px; } #globalnavi a[href="./main.html"]:hover, #globalnavi a[href="./main.html"]:focus { background-position: -96px -79px; } #globalnavi a[href="./blog.html"]:hover, #globalnavi a[href="./blog.html"]:focus { background-position: -96px -158px; } #globalnavi a[href="./link.html"]:hover, #globalnavi a[href="./link.html"]:focus { background-position: -96px -237px; } #globalnavi a[href="../index.html"]:hover, #globalnavi a[href="./index.html"]:focus { background-position: -96px -316px; }

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

    jqueryでのプルダウンメニューについて こんにちは。 現在私はWEBサイトを製作中です。 メインメニューにプルダウンをつけたいのですが、うまくいきません。 メニューはロールオーバーでの表示(CSSでやってます)です。 slideDownを使用しているのですが、 マウスオーバー時にslidDownで表示された、 サブメニューの背景が、上の要素の背景になってしまいます。 つまり、下のコードでいくとid="sub"の背景がそのまま clas="sub"の"li"要素の背景になってしまうということです。 何か対策はありますでしょうか? html <div id="head"> <ul id="globalnavi"> <li id="gh"><a href=".">メニュー</a> <ul class="sub"> <li><a href="">サブメニュー</a></li> </ul> </li> </ul> </div> <div id="main"> </div> jquery $(function(){ $("ul.sub").hide(); $("ul#globalnavi>li").hover(function(){ $("ul:not(:animated)", this).slideDown();}, function(){$("ul.sub",this).slideUp();}); }); CSS #globalnavi a{ background-image : url(../img/navi.png); background-repeat : no-repeat; display : block; width : 160px; height : 36px; color : #333333; text-decoration : none; line-height : 36px; } #header #globalnavi li { list-style-type : none; float : left; width : 160px; position : relativ; } #header #globalnavi { clear : both; width : 960px; line-height : 36px; overflow : hidden; position : relative; text-align : center; display : block; } ul,li{ margin:0; padding:0; } .sub li{ float : none; background-color : #FFF; } #gh a{ background-position :0 0; } #gh a:hover{ background-position :0 -36px; } ロールオーバー自体はうまくいっています。 他にプルダウンの方法あるよ、などありましたら教えてください。 よろしくお願いします。

  • IEでCSSによる背景画像の高さが伸びる原因は?

    2枚の画像で、リンクを行おうとした場合、 div内にh2とulでリンクを行っています。 ところが、高さ(hight)を全てに指定しているにも関わらず、 divが引き伸ばされて、background-imageの不要な部分まで出てきてしまいます。 borderを入れると全体を挟んでいるDIVが何かによって引き伸ばされていますが、なぜIEだと引き伸ばされているのでしょうか? FIREFOXだと綺麗に表示されます。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <title>無題ドキュメント</title> <style> <!-- * { margin:0; padding:0; } h2,ul { text-indent:-9999px; list-style:none; } h2 a { width:175px; height:28px; display:block; } ul a { display:block; width:175px; height:24px; } ul li { padding:0; margin:0; } .float_right { float:right; } .mgn_btm7 { margin-bottom:7px; } div#NAVIBAR { width:175px; margin-top:43px; height:398px; background-image:url(image/test-a.gif); background-repeat:no-repeat; border:1px #FF0000 solid; } h2 a:hover { background-image:url(image/test.gif); background-position:0 0; background-repeat:no-repeat; height:23px; } ul a:hover { background-image:url(image/test.gif); background-repeat:no-repeat; height:23px; } ul a#E:hover { background-position:0 -28px; } ul a#F:hover { background-position:0 -52px; } ul a#G:hover { background-position:0 -76px; } ul a#H:hover { background-position:0 -100px; } ul a#I:hover { background-position:0 -124px; } ul a#J:hover { background-position:0 -155px; } ul a#K:hover { background-position:0 -179px; } ul a#L:hover { background-position:0 -203px; } ul a#M:hover { background-position:0 -227px; } ul a#N:hover { background-position:0 -251px; } ul a#O:hover { background-position:0 -275px; } ul a#P:hover { background-position:0 -299px; } ul a#Q:hover { background-position:0 -323px; } ul a#R:hover { background-position:0 -347px; } ul a#S:hover { background-position:0 -371px; } --> </style> </head> <body> <div id="NAVIBAR" class="float_right"> <h2><a href="#">タイトル</a></h2> <ul class="mgn_btm4"> <li><a href="#" id="E">ああああああ</a></li> <li><a href="#" id="F">いいいいいい</a></li> <li><a href="#" id="G">うううううう</a></li> <li><a href="#" id="H">ええええええ</a></li> <li class="mgn_btm7"><a href="#" id="I">おおおおおおお</a></li> <li><a href="#" id="J">かかかかかか</a></li> <li><a href="#" id="K">きききききき</a></li> <li><a href="#" id="L">くくくくくく</a></li> <li><a href="#" id="M">けけけけけけ</a></li> <li><a href="#" id="N">ここここここ</a></li> <li><a href="#" id="O">ささささささ</a></li> <li><a href="#" id="P">しししししし</a></li> <li><a href="#" id="Q">すすすすすす</a></li> <li><a href="#" id="R">せせせせせせ</a></li> <li><a href="#" id="S">そそそそそそ</a></li> </ul> <hr> </div> </body> </html>

    • ベストアンサー
    • HTML
  • 幅違うメニュー(リスト)、floatで横並びで背景画像でテキスト飛ばしたいが・・

    お世話になります。 メニュー(リスト)のテキストを、CSSで飛ばして、背景の画像を表示させるようにしたいのですが、何も表示されません。 マウスオーバーすると、画像がかわるようにしたいです。 どうか、何が問題なのか、教えてくださいませ。 ★メニューのwidthは、全てちがいます。 ★背景の画像は、「./images/gNavi/gNav.gif」という幅513px高さ14pxの画像。  マウスオーバーの背景画像は、「./images/gNavi/gNav_ov.gif」という幅513px高さ14pxの画像。 ★リストは、横並びにしたい。 【HTML】 <div id="gNavi"> <ul> <li id="01"><a href="#">メニュー1</a></li> <li id="02"><a href="#">メニュ-2</a></li> <li id="03"><a href="#">メニュ-3</a></li> <li id="04"><a href="#">メニュ-4</a></li> <li id="05"><a href="#">メニュ-5</a></li> <li id="06"><a href="#">メニュ-6</a></li> </ul> </div> 【CSS】 #gNavi { width:513px; height:14px; } #gNavi ul{ list-style: none; margin: 0; padding: 0; height: 14px; overflow: hidden; } #gNavi li { float:left; margin:0; padding:0; } #gNavi li a{ display:block; height:100%; width: 100%; height: 0 !important; height /**/: 14px; background:url(../images/gNavi/gNav.gif) no-repeat; text-decoration:none; text-indent:-7777px; } #gNavi li a:hover{ background:url(../images/gNavi/gNav_ov.gif) no-repeat; } #gNavi li#01 a{ background-position: 0 0; width: 52px; } #gNavi li#02 a{ background-position: -52px 0; width: 71px;} #gNavi li#03 a{ background-position: -123px 0; width: 105px;} #gNavi li#04 a{ background-position: -228px 0; width: 93px;} #gNavi li#05 a{ background-position: -321px 0; width: 93px;} #gNavi li#06 a{ background-position: -414px 0; width: 99px;} #gNavi li#01 a:hover { background-position: 0 0;} #gNavi li#02 a:hover { background-position: -52px 0;} #gNavi li#03 a:hover { background-position: -123px 0;} #gNavi li#04 a:hover { background-position: -228px 0;} #gNavi li#05 a:hover { background-position: -321px 0;} #gNavi li#06 a:hover { background-position: -414px 0;} (何か、他に必要な情報があれば、言ってください!)

    • ベストアンサー
    • CSS
  • IE6で見るとメニューバーが崩れてしまいます

    ホームページを作成したのですが、ページによって上部に設置したメニューバーが見れたり見れなかったりしてしまいます。CSSハックでIE6でもページ自体は何とか見れるようにはなったのですが、何ページかはどういうわけかトップ部分にあるメニューが画像ではなく、文字で現れて正常に見ることができません。どなた様かお詳しい方、教えて頂けませんでしょうか。下記にhtmlとcssを記述します。 〈html〉 <html> <body> <div class="headbg"><img src="head_bg1.jpg" alt="" border="0"></div> <div class="header"><a href="#" border="0"> <div class="rogo"> </div> </a> <div id="globalnavi"> <ul> <li id="menu1"><a href="#">メニュー1</a></li> <li id="menu2"><a href="#" >メニュー2</a></li> <li id="menu3"><a href="#">メニュー3</a></li> <li id="menu4"><a href="#">メニュー4</a></li> <li id="menu5"><a href="#">メニュー5</a></li> <li id="menu6"><a href="#">メニュー6</a></li> </ul> </div> <div class="main"></div> </div> </body> </html> <CSS> .headbg { height:400px; width: 100%; min-width:900px; border:0px solid #F00; position:absolute; top:66px; left:0; overflow:hidden; background: url(head_bg_bg.jpg); background-repeat:repeat-x; } .rogo { background-image: url(rogo.jpg); background-repeat: no-repeat; height: 160px; width: 160px; padding: 0px; margin-top: 8px; margin-right: 0px; margin-bottom: 11px; margin-left: 33px; position: relative; border: 0px solid #000; clear: both; float: left; position:relative; } .header { width: 900px; height:300px; padding:0px; margin-left: auto; margin-right:auto; text-align:left; margin-top:0px; border:0px solid red; } .main { height:920px; width: 900px; min-width:900px; background-color:#ffffff; font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, Osaka, "MS Pゴシック", "MS PGothic", sans-serif; padding: 0px 0px 0px 0px; margin-left: auto; margin-right: auto; text-align: center; margin-top:65px; } #globalnavi { margin-left:auto; margin-right:auto; margin-top:-170px; text-align:left; top:0px; left:0px; padding:0px; width:700px; height:52px; list-style:none; overflow:hidden; border: 0px solid red; float:right; clear:both; } #globalnavi ul { list-style-type: none; margin: 0; padding: 0; height: 52px; overflow: hidden; } #globalnavi li { text-indent: -9999px; float:left; width: 116px; height: 52px; margin: 0; padding-right: 0px; border:0px solid #333; } #globalnavi a { display: block; position: relative; width: 100%; height: 52px; } #menu1 a { background: url(menu1_active.jpg) no-repeat 0 0; left:0px; margin-left:0px; } #menu2 a { background: url(menu2.jpg) no-repeat 0 0; margin-left:0px; } #menu3 a { background: url(menu3.jpg) no-repeat 0 0; margin-left:0px; } #menu4 a { background: url(menu4.jpg) no-repeat 0 0; margin-left:0px; } #menu5 a { background: url(menu5.jpg) no-repeat 0 0; margin-left:15px; } #menu6 a { background: url(menu6.jpg) no-repeat 0 0; margin-left:15px; }