• 締切済み

IE7で背景画像がテキスト文字幅しか表示されない件

お世話になっております、初めて質問投稿させて戴きます。 表題の件、 ヘッダーナビゲーションを作成しておりますが IE7のみリストの背景画像がテキスト文字幅分しか表示されません。 (IE8以降 firefox googlechormeでは表示されております。) htmlコード <div id="nav"> <ul> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> </ul> </div> css #nav{width:950px; height:40px; position:relative; overflow:hidden; clear:both; margin-left:25px; } #nav ul{list-style:none; position:relative; left:50%; float:left;} #nav ul li{float:left; width:150px; height:40px; text-align:center; line-height:40px; font-family:"ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", sans-serif; background-color:transparent; background-image:url(image/menu_bcg.png); position:relative; left:-50%; } #nav ul li a { text-decoration:none; font-size:12px; color:#666; } こちらのmenu_bcg.pngがIE7のみxxxxxxxの文字幅分しか表示されず、 150pxかける6項目で横幅900pxのナビゲーションを作成したいのですが 短いナビゲーションしか表示できません。 色々と調べているのですが、 IE7で文字が表示されない、や余白が生まれる、ことを回避する情報はネットに落ちているのですが 文字幅しか表示されないものの回避策が見当たりませんでしたので こちらへ投稿させて戴きました。 どうぞお力添え戴ければ幸いでございます。

noname#154600
noname#154600
  • CSS
  • 回答数4
  • ありがとう数2

みんなの回答

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

とりあえず必要部分だけを書く事! その後に調整として後付けすればよい。 変だと思ったら、width と height を全て指定してみる事! ul#nav2,ul#nav2 li{margin:0; padding:0;} ul#nav2{ width:950px; height:40px; list-style:none;} ul#nav2 li{ float:left; width:150px; height:40px; line-height:40px; background: url(image/menu_bcg.png);} ul#nav2 li a{ display:block; width:100%; height:100%; text-align:center;} <ul id="nav2"> <li><a href="">xxxxxxx</a></li> <li><a href="">xxxxxxx</a></li> <li><a href="">xxxxxxx</a></li> <li><a href="">xxxxxxx</a></li> <li><a href="">xxxxxxx</a></li> <li><a href="">xxxxxxx</a></li> </ul>

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

>上記ご回答戴いた内容についてほとんど理解できておりません。  それは困りましたね。でも、あなたの書かれたスタイルシートよりも、はるかに簡単だと思います。 #nav{ height:40px;width:90%;/* navブロックの高さと幅を指定しています */ text-align:center;/* 文字をセンター配置--継承されるのでここに */ margin:0 auto;/* 上下のマージンを0,左右は自動調整 */ position:relative;/* 以下の位置やサイズの基準とするため */ min-width:480px;/* ウィンド幅に合わせて伸縮するがこれ以上小さくしない */ line-height:40px;/* 文字を高さの中央に配置するため */ /* font-familyもここで指定しておきましょう */ } #nav ul,#nav ul li{ /* 同じプロパティを設定するのでセレクタはグループ化 */ display:block;list-style:none;/* リストやリストの項目をブロックにしておく */ margin:0;padding:0;/* リストはブラウザによってmarginやpaddingの初期値が異なるので消しておく */ } #nav ul li{ float:left; /* 左からつめる */ /* 本来はdisplay:inline-blockなのだがIE6などは対応していないので */ width:16%;/* 直近のstatic以外の親コンテナブロック(#nav)のサイズから */ margin-left:0.5%;/* ユーザビリティのためスペースをあける */ /* 兄弟セレクタが使える新しいブラウザ対象ではli+liだけど */ } #nav ul li a{ display:block;width:100%;height:100%; /* aは行内要素なのでblockに変えておく--サイズ指定をするため */ text-decoration:none; background-color:pink; /* backgroundの簡易プロパティで背景画像を一緒に指定する。 */ } #nav ul li a:hover{background-color:yellow;}/* 背景を指定したときはここでも指定する */  きちんと読んでいけば難しくは無いはずです。それぞれの用語がわからないときは、仕様書を確認すること。  変なサイトのソースだけをコピペしても応用は利きません。大事なことは理解して使うこと。そのためには最低限仕様書だけは、ざっと読んでおきましょう。始めは難しいですが、いつも見ていたら理解できるようになります。  学問の王道はありません。 ★ブロックレベル要素と行内要素 ( http://www.asahi-net.or.jp/%7Esd5a-ucd/rec-html401j/struct/global.html#h-7.5.3 ) ★値の割り当て、カスケード処理、継承 ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/cascade.html )  CSS(カスケーディングスタイルシート)においてもっとも大事なのは、このカスケード処理なのですよ。プロパティはその後でよい。カスケーディングがあるから、指示されて使われている。  頑張ってください。それしかないです。  まあ、サンプルを試してください。ウィンドウ幅を伸縮させてもきちんと付いてくるはずです。

noname#154600
質問者

お礼

OKWAVEもほとんど使ったことなく、 お礼が遅くなり失礼しました! なるべく早めに仕様書を読み込む時間をとります。 この度はありがとうございました。

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

なぜ、そんな複雑なCSSを書く必要があるのかわかりません。無駄があまりに多すぎます。 とりあえずリキッドスタイルのサンプルです。スマホでもOKなようにウィンドウ巾が480pxまで対応しています。--現在のように様々な端末が想定される時代・・私は固定デザインはしない。  固定デザインにするときは、 width:90%; → width900px; width:16% → width:148px; margin\left:0.5% → margin-left:2px; min-width:480pxを削除 する。  IE5でセンターよりに出来ない以外は、IE5~IE10まで対応しています。他のブラウザでも同様に表示されます。 ★ユーザビリティから、リンクの間に必ずスペース(マージン)をとるようにしましょう。 ★継承されるプロパティは出来るだけ上位に書いてしまいましょう。 ★継承されないプロパティを複数の要素に適用させるときはセレクタをグループ化しましょう。 ★無用なプロパティは書かない。overflow:hiddenとか、positio;relativeとか、  これで随分とわかりやすくなるはず。  また、必ずstrictで作成し、ウェブ標準で動作するようにすることもブラウザ間の差をなくするポイントです。 →doctype スイッチ - Google 検索 ( https://www.google.co.jp/#hl=ja&sclient=psy-ab&q=DOCTYPE+%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81&oq=DOCTYPE+%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81&aq=f&aqi=g1&aql=&gs_l=hp.3..0.2149.7699.0.8410.13.11.0.2.2.2.500.3062.0j2j6j2j0j1.11.0...0.0.pKZuCLZVEmk&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=e08cbb8e8038c184&biw=1019&bih=628 ) ★Another HTML-lint gateway ( http://openlab.ring.gr.jp/k16/htmllint/htmllint.html ) ★W3C CSS 検証サービス ( http://jigsaw.w3.org/css-validator/#validate_by_input ) で検証済みのウェブ標準 HTML4.01strict+CSS2.1です。  ソース中のタブは_に置換してあるので戻すこと。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> _<meta http-equiv="content-type" content="text/html; charset=Shift_JIS"> _<title>サンプル</title> _<meta name="author" content="ORUKA1951"> _<meta http-equiv="Content-Style-Type" content="text/css"> _<link rev="made" href="mailto:oruka1951@hoge.com" title="send a mail" > _<link rel="START" href="../index.html"> _<style type="text/css"> <!-- #nav{height:40px;width:90%;text-align:center;margin:0 auto;position:relative;min-width:480px;line-height:40px;} #nav ul,#nav ul li{display:block;list-style:none;margin:0;padding:0;} #nav ul li{float:left;width:16%;margin-left:0.5%;} #nav ul li a{display:block;width:100%;height:100%;text-decoration:none;background-color:pink;} #nav ul li a:hover{background-color:yellow;} --> _</style> </head> <body> _<h1>サンプル</h1> <div id="nav"> <ul> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> <li><a href="http://xxxxxxxxxx.net/xxxx/">xxxxxxx</a></li> </ul> </div> </body> </html>

noname#154600
質問者

補足

ORUKA1951さん ご回答ありがとうございます。 初心者なもので、 上記ご回答戴いた内容についてほとんど理解できておりません。 読み込んでみます。 有難うございます!

  • LOHA
  • ベストアンサー率52% (203/388)
回答No.1

とりあえず #nav ul li にdisplay: hiddenを加えたらwidth通り表示されるようになりました。 ただし、内部のaのテキストにtext-align: centerが効いてないようです。 #幅の計算が上手く行ってない模様。 個人的には、メニューのliにはinline-block使うのがお勧めですけどね。 #IEはinline&zoomで対処

noname#154600
質問者

お礼

overflow:hiddenをnav ul liに入れたら画像がきちんと表示されました! ありがとうございました! ※やはり私もtext-align: centerが効いていないので そこはこれから考えます。。。

noname#154600
質問者

補足

LOHAさん ありがとうございます! ちなみになんですが、 <#nav ul li にdisplay: hiddenを加えたらwidth通り表示されるようになりました。 これを加える前段階では 私と同じようなwidth通りに表現されない状態でしたでしょうか? #nav ul li にdisplay: hiddenを加えてみたのですが、 IE7の表示に変化が見られませんでした・・・ 何か私がしでかしているはずなのですが・・・

関連するQ&A

  • IE6、7で途切れてしまう画像

    分からない部分が出た際にいつもお世話になっております。 今回もどなたかご回答頂けますと幸いです。 グローバルナビゲーションを中央揃えにして表示させようとしているのですが、 IE6と7で確認したときになぜか下部分が途切れてしまいます(1pxくらい?) 高さは指定している筈なのですが… 【html】 <div id="global-nav"> <ul> <li><a href="test.html"><img src="images/navi/test.png" alt="テスト" width="192" height="43" /></a></li> <li><a href="test.html"><img src="images/navi/test.png" alt="テスト" width="191" height="43" /></a></li> <li><a href="test.html"><img src="images/navi/test.png" alt="テスト" width="192" height="43" /></a></li> <li><a href="test.html"><img src="images/navi/test.png" alt="テスト" width="192" height="43" /></a></li> <li><a href="test.html"><img src="images/navi/test.png" alt="テスト" width="193" height="43" /></a></li> </ul> </div> 【css】 div#global-nav { position:relative; height: 43px; background:url(../common/navi_bg.jpg) repeat-x center bottom; overflow:hidden; } div#global-nav ul { position:relative; left:50%; float:left; list-style-type:none; } div#global-nav li { position:relative; left:-50%; float:left; } 宜しくお願いします。

  • Liで背景画像が表示されない

    よく見かけるLiでナビゲーション項目を表示させるのを しようとしているんですが、Liの背景画像が上手く表示されません。 navigationの背景画像は表示されたのですが、liで指定した 背景画像が表示されません。 どこが悪いのでしょうか?? 初歩的な事かもしれませんが、よろしくお願いします。 #navigation { WIDTH: 900px; height:50px; background: url(./h_side.jpg); background-position: left top; text-align:left; ul { margin: 0px; padding: 0px;} li { display: block; } .menuA01 { width: 178px; height:50px; margin-top: 0px; margin-bottom: 0px; margin-left: 5px; margin-right: 0px; text-decoration: none, background : url(./menuA01.jpg); background-position: left top; float: left; <div id="navigation"> <ul> <li class="menuA01"><a href="/index.html">menuA01</a></li> <li class="menuA02"><a href="/index.html">menuA02</a></li> <li class="menuA03"><a href="/index.html">menuA03</a></li> <li class="menuA04"><a href="/index.html">menuA04</a></li> <li class="menuA05"><a href="/index.html">menuA05</a></li> </ul> </div>

  • 【CSS】firefoxで背景が表示されない-ナビゲーション(画像置換リンク)

    「li」に背景画像を指定して、ナビゲーションをつくってみたところ・・・ Firefox、Operaで表示されません。 (IEでは表示されます。) ヘッダー左にロゴ(これはどのブラウザでも表示される)、右側にナビゲーションを配置した作りです。 ハックなど色々調べてみたのですが、解決できず・・・。 力をお貸しいただけないでしょうか。 g_nav.gif・・・グローバルナビゲーション一枚画像550px×30px。(上部:ロールオーバー前、下部:ロールオーバー時) 【HTML】 <!--headerここから--> <div id="header"> <!--logoここから--> <div id="logo"> <h1><a href="aaa.html">logo</a></h1> </div> <!--logoここまで--> <!--naviここから--> <div id="nav"> <ul> <li id="nav01"><a href="aaa.html">あああ</a></li> <li id="nav02"><a href="aaa.html">あああ</a></li> <li id="nav03"><a href="aaa.html">あああ</a></li> <li id="nav04"><a href="aaa.html">あああ</a></li> <li id="nav05"><a href="aaa.html">あああ</a></li> </ul> </div> <!--naviここまで--> </div> <!--headerここまで--> 【CSS】 #header{ width:800px; height:70px; margin:0 auto; padding:0; } #logo { width:216px; height:70px; background-image:url(../cmn_img/logo.gif); float:left; } #nav{ width:550px; height:30px; float:right; margin:40px 0 0 0; padding:0; text-indent:-999em; } #nav ul{ margin:0; padding:0; list-style-type:none; } #nav li{ display:inline; } #nav li#nav01 a,#nav li#nav02 a,#nav li#nav03 a,#nav li#nav04 a,#nav li#nav05 a,{ display:block; background-image:url(../cmn_img/g_nav.gif); overflow:hidden; float:left; } #nav li#nav01 a{width:110px; height:30px; background-position:0 0;} #nav li#nav02 a{width:110px; height:30px;background-position:-110px 0;} #nav li#nav03 a{width:110px; height:30px;background-position:-220px 0;} #nav li#nav04 a{width:110px; height:30px;background-position:-330px 0;} #nav li#nav05 a{width:110px; height:30px;background-position:-440px 0;} #nav li#nav01 a:hover{width:110px; height:30px;background-position:0 -30px;} #nav li#nav02 a:hover{width:110px; height:30px;background-position:-110px -30px;} #nav li#nav03 a:hover{width:110px; height:30px;background-position:-220px -30px;} #nav li#nav04 a:hover{width:110px; height:30px;background-position:-330px -30px;} #nav li#nav05 a:hover{width:110px; height:30px;background-position:-440px -30px;} 【下記ハック使用】 #header:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } #header {display: inline-table;} /* Hides from IE-mac \*/ * html #header {height: 1%;} #header {display: block;} /* End hide from IE-mac */

    • 締切済み
    • CSS
  • IE6,IE7だとメニューが写真の裏に表示される

    こんばんは。コーディング作業をしており、ヘッダーにドロップメニュー(多階層のメニューバー)を設置し、その下に写真を置いたのですが、メニューをマウスオーバーし、2階層目のカテゴリが出てきた時に、IE6.IE7だと写真の裏に隠れてしまいます。 ※IE8、FF、Macだと写真の前にちゃんと表示されます。 ソースを添付しますので、どこがいけないかご指摘していただけないでしょうか。 よろしくお願いいたします。 [HTMLソース] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <link href="style.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="jquery-1.5.2.js"></script> <script type="text/javascript" src="superfish.js"></script> <script type="text/javascript"> jQuery(function(){ jQuery('ul#nav').superfish(); }); </script> </head> <body> <div id="container"> <div id="header" class="clearfix"> <div id="menuBottom" class="clear"> <ul id="nav" class="clearfix"> <li><a href="#"><img src="" alt="" width="88" height="29" /></a> <ul> <li><a href="#aa">menu item that is quite long</a></li> <li class="current"><a href="#ab">menu item</a> <ul> <li><a href="#">menu item</a> <ul> <li><a href="#">short</a> <ul> <li><a href="#">menu item</a></li> <li><a href="#">menu item</a></li> <li><a href="#">menu item</a></li> <li><a href="#">menu item</a></li> <li><a href="#">menu item</a></li> </ul> </li> <li><a href="#">short</a></li> <li><a href="#">short</a></li> <li><a href="#">short</a></li> <li><a href="#">short</a></li> </ul> </li> </ul> </div><!--#menuBottom END--> </div> </div><!--#header END--> <br /><br /><br /><br /> <div id="contents"> <div id="slide" class="fltL"> <div id="slide_body"> <ul> <li style="margin-left:300px;"><img src="" width="622" height="461" alt="" /></li> </ul> </div><!--#slide_body END--> </div> <!--#slide END--> </div><!--#container END--> </body> </html> [上のhtmlに読み込まれているCSS(style.css)] #header { width:950px; margin:0 auto; padding-top:19px; z-index:100; } #menuBottom { float:right; z-index:0; } #container { width:100%; text-align: left; } /*** ドロップメニュのCSS ***/ ul li { margin:0; padding:0; } #nav ul { position:absolute; top:-999em; width:10em; /* left offset of submenus need to match (see below) */ } #nav ul li { width:100%; height:100%; } #nav li:hover { visibility:inherit; /* fixes IE7 'sticky bug' */ } #nav li { float:left; position:relative; } #nav li:hover ul, #nav li.sfHover ul { left:0; top:2.5em; /* match top ul list item height */ z-index:99; _z-index:0; } ul#nav li:hover li ul, ul#nav li.sfHover li ul { top:-999em; } ul#nav li li:hover ul, ul#nav li li.sfHover ul { left:10em; /* match ul width */ top:0; } ul#nav li li:hover li ul, ul#nav li li.sfHover li ul { top:-999em; } ul#nav li li li:hover ul, ul#nav li li li.sfHover ul { left:10em; /* match ul width */ top:0; } /*** DEMO SKIN ***/ #nav { float:left; } #nav ul li a { display:block; position:relative; padding:0.75em 1em; border-left:1px solid #fff; border-top: 1px solid #CFDEFF; text-decoration:none; height: 100%; z-index:15; } #nav a, #nav a:visited { /* visited pseudo selector so IE6 applies text colour*/ color:#13a; } #nav li li{ background:#AABDE6; } /*** 画像部分のCSS ***/ #slide { width:624px; position:relative; } #slide_header { position:absolute; top:0px; left:0px; width:624px; height:7px; z-index:2; background: url(slide_header.png) no-repeat; } #slide_body { background: url(slide_body.gif) repeat-y 0px 0px; width:624px; margin:auto; } #slide_body img { margin:auto; }

  • IE7で表示すると画像に隙間があきます。

    WEBサイトを作っているのですがIE7で表示すると 画像と画像の間にスペースが出来てしまいます。 他のブラウザだとスペースが出来ないのですが原因は何なんでしょうか? HTML <div id="sidebar"> <div id="sidebar-bg"> </div> <div id="image-navigation"> <div class="navi"> <ul> <li><a href="#.html" title="○○"><img src="images/○○.png" width="200" height="39" alt="○○" /></a></li> <li><a href="#.html" title="○○"><img src="images/○○.png" width="200" height="35" alt="○○" /></a></li> <li><a href="#.html" title="○○"><img src="images/○○.png" width="200" height="35" alt="○○" /></a></li> <li><a href="#.html" title="○○"><img src="images/○○.png" width="200" height="35" alt="○○" /></a></li> <li><a href="#.html" title="○○"><img src="images/○○.png" width="200" height="35" alt="○○" /></a></li> <li><a href="#.html" title="○○"><img src="images/○○.png" width="200" height="35" alt="○○" /></a></li> </ul> </div> </div> </div> CSS #sidebar{ width: 200px; float: left; } #sidebar-bg{ background-color: #FFF; filter:alpha(opacity=50); -moz-opacity: 0.5; opacity:0.5; position:absolute; left:0; top:42px; z-index:-1; width: 200px; height:100%; } ul, li { margin:0; padding:0; list-style:none; } #image-navigation ul li a { display:block; width:200px; }

    • ベストアンサー
    • HTML
  • ドロップダウンのサブメニューを画面の左右いっぱい

    メインのナビゲーションでマウスを重ねた時に下にサブメニューを表示させるのですが、画面左右いっぱいにバックカラーを入れたいのですが、できません。 バックカラーはAAAの幅になります。 ul.nav li ul.sub のwidthに数値を入れれば右側に広がりますが左右いっぱいにはなりません。 マウスを“AAA”に重ねても文字の色は変化しません。 jQueryは初めてで、マニュアル本を見ながらの作成の為、悪戦苦闘です。 よろしくお願いします。 【html】 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> <script> $(function(){ $("ul.sub").hide(); $("ul.nav li").hover(function(){ $("ul:not(:animated)",this).slideDown("fast"); }, function(){ $("ul",this).slideUp("fast"); }); }); </script> </head> <div class="wrapper"> <nav> <ul class="nav"> <li><a href="#">AAA</a></li> <ul class="sub"> <li><a href="#">AAA-1</a></li>     <li><a href="#">AAA-2</a></li>      <li><a href="#">AAA-3</a></li> </ul> <li><a href="#">BBB</a></li> <li><a href="#">CCC</a></li> <li><a href="#">DDD</a></li> <li><a href="#">EEE</a></li> </ul> </nav> </div> 【CSS】 .wrapper { position: relative; width: 960px; margin-left:auto; margin-right:auto; } ul.nav { width: 960px; margin: 0; margin-left:auto; margin-right:auto; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 10px 0; ul.nav li { border-left: 1px solid #ccc; float: left; position:relative } ul.nav li:first-child { border: 0; padding-left:150px; } ul.nav li a{ display: block; padding:10px 30px; color: #333; text-decoration: none; } ul.nav li a:hovre{ color:#009F00; } ul.nav:after { height:0; visibility:hidden; content:"."; display:block; clear:both; } ul.nav li ul.sub { position: absolute; top:30px; width:100%; background-color:#808080; } ul.nav li ul.sub li{ float:left; } ul.nav li ul.sub:after { height:0; content:"."; display:block; clear:both; }

    • 締切済み
    • CSS
  • CSSでボックス内の隙間が消えない

    MacのDw2004MXで、ulリストでマークアップしたナビゲーションを横に並べてa要素に背景を設定し、テキストをレフトアウトしています。 Mac上のブラウザでは問題なのですが、WinのIE6で見てみると文字サイズが最小の時以外はナビの上部に白い隙間が表示されてしまいます。もちろんpaddingもmarginも0を指定しています。隙間は文字サイズが最大のとき高さ3px、文字サイズ中のとき高さ2pxです。 しかも、a要素のfont-sizeとline-hightはpxで指定しているのでWinの文字サイズ変更は効かないはず… ulタグをdivで括り、divのpaddingもmarginも0としています。 お助けください。 ====XHTML===== <div id="nav"> <ul><li><a id="nav1" href="index.html">TOP</a></li><li><a id="nav2" href="room.html">page1</a></li><li><a id="nav3" href="price.html">page2</a></li><li><a id="nav4" href="service.html">page3</a></li><li><a id="nav5" href="meal.html">page4</a></li><li><a id="nav6" href="reserve.html">page5</a></li><li><a id="nav7" href="access.html">page6</a></li></ul> </div> ======CSS===== #nav{ width:705px; height:30px; margin:0; padding:0; } #nav ul{ list-style-type:none; margin:0; padding:0; height:30px; } #nav ul li{ display:inline height:30px; margin:0; padding:0; height:30px; } #nav ul li a{ display:block; margin:0; font-size:6px; height:30px; float:left; background:url(../i/g/nav.gif) no-repeat 0 0; text-indent:-5000px; line-height:10px; }

  • CSSで背景画像にリンクを貼ったら表示されない

    こんばんは、過去ログを探したのですが 解決できなかったので、教えてください。 スタイルシートを勉強中です。横並びのナビゲーションに 背景を使って、ロールオーバーリンクにしたいと思い、 自分なりに調べて書いてみたのですが、 IEだと希望どおり表示されるのですが、ChromeとFireFoxだと はじめの"home.jpg"画像だけが表示されません。 <HTML> <div id="g-nav-box"> <div id="g-nav-inner"> <ul id="nav"> <li class="home-nav"><a href="index.html">ホーム</a></li><!-- --><li class="aaaa-nav"><a href="aaaa.html">AAAA</a></li><!-- --><li class="bbbb-nav"><a href="bbbb.thml">BBBB</a></li><!-- --><li class="cccc-nav"><a href="cccc.html">CCCC</a></li> <!--/ul.nav--></ul> <!--/div#g-nav-inner--></div> <!--/div#g-nav-box--></div> <CSS> #g-nav-box #g-nav-inner #nav ul{ margin: 0; padding: 0; list-style-type: none; } #g-nav-box #g-nav-inner #nav li{ margin: 0; padding: 0;   display: inline; float: left; } #g-nav-box #g-nav-inner #nav a{ display:block; width:220px; height:38px;   text-indent:-1000em;   overflow:hidden;  padding-left:0; } #header-area #g-nav-box #g-nav-inner #nav .home-nav a{  background-image:url(images/home.jpg); } #header-area #g-nav-box #g-nav-inner #nav .home-nav a:hover{ background-position:0px -38px; /* 背景画像の(0px -38px)に移動 */ } #header-area #g-nav-box #g-nav-inner #nav .aaaa-nav a{ background-image:url(images/aaaa.jpg); } #header-area #g-nav-box #g-nav-inner #nav .aaaa-nav a:hover{ background-position:0px -38px; } #header-area #g-nav-box #g-nav-inner #nav .bbbb-nav a{ background-image:url(images/bbbb.jpg); } #header-area #g-nav-box #g-nav-inner #nav .bbbb-nav a:hover{ background-position:0px -38px; } #header-area #g-nav-box #g-nav-inner #nav .cccc-nav a{ background-image:url(images/cccc.jpg); } #header-area #g-nav-box #g-nav-inner #nav .cccc-nav a:hover{ background-position:0px -38px; } 文字を表示させないように テキストインデントを使っているため背景画像も飛んでしまったのかな?と 思っているのですが、解決できないでいます。 どのような修正が考えられるでしょうか、お願いします。

    • ベストアンサー
    • HTML
  • IE6とIE7での表示の違いについて

    CSSでリストメニューを作成しています。 IE7では正常に表示できて、IE6ではリスト欄が 正常に表示できない現象に陥っており 原因はhoverにあるのではないかと、 csshover.htcをbehavior:url(csshover.htc);で取り込んでみたのですが改善されませんでした。 csshoverの絶対パスや相対パスについてはいずれも試してみたのですが やはり思うようにはいきませんでした。 下記にスタイルシート内容を添記します。 ie7では使用できて、ie6では使用できない部分など お気づきの点ありましたら、お力添え願います。 /* CSS Document */ body{ padding: 0px; } /* 背景 */ .nav-container-outer{ background: green; padding: 0px; height: 26px; background: url(images/menubg.png); } /* 幅寄せ左 */ .float-left{ float: left; } /* 幅寄せ右 */ .float-right{ float: right; } .nav-container .divider{ display:block; font-size:1px; border-width:0px; border-style:solid; } .nav-container .divider-vert{ float:left; width:0px; display: none; } .nav-container .item-secondary-title{ display:block; cursor:default; white-space:nowrap; } .clear{ font-size:1px; height:0px; width:0px; clear:left; line-height:0px; display:block; float:none; } .nav-container{ position:relative; zoom:1; margin: 0 auto; } .nav-container a, .nav-container li{ float:left; display:block; white-space:nowrap; } .nav-container div a, .nav-container ul a, .nav-container ul li{ float:none; } .nav-container ul{ left:-10000px; position:absolute; } .nav-container, .nav-container ul{ list-style:none; padding:0px; margin:0px; } .nav-container li a{ float:none } .nav-container li{ position:relative; } .nav-container ul{ z-index:10; } .nav-container ul ul{ z-index:20; } .nav-container ul ul ul{ z-index:30; } .nav-container ul ul ul ul{ z-index:40; } .nav-container ul ul ul ul ul{ z-index:50; } li:hover>ul{ left:auto; } #nav-container ul { top:100%; } #nav-container ul li:hover>ul{ top:0px; left:100%; } /* メニュー */ #nav-container a{ padding:7px 0px 5px 0px; margin: 0px 0px 0px 0px; width: 130px; color: #FFFFFF; font-size:10px; font-family: 'HG丸ゴシックM-PRO'; text-decoration: none; background: url(images/menu.png); background-repeat: no-repeat; background-position: top; font-weight: none; } /* メニュー選択時 */ #nav-container a:hover{ color: #FFFFFF; background: url(images/menu-sel.png); background-position: center; } /* サブメニュー */ #nav-container div, #nav-container ul{ padding:0px 4px 10px 0px; margin:0px 0px 0px 0px; width: 175px; background: url(images/menusub.png); background-repeat: repeat-y; background-position: -1px 1px; border-bottom: 1px solid black; } /* サブメニュー項目 */ #nav-container div a, #nav-container ul a{ padding:2px 2px 2px 2px; margin: 4px 0px 0px 0px; width: 174px; background-color: #FFFFFF; background: url(images/menusub-sel.png); background-repeat: no-repeat; background-position: 0px 22px; font-size:10px; border-width:0px; border-style:none; color: #000000; } /* サブメニュー選択時 */ #nav-container div a:hover, #nav-container ul a:hover{ background-color: #FFFFFF; background: url(images/menusub-sel.png); background-repeat: no-repeat; color: #000000; } /* サブメニュー内見出し */ #nav-container .item-secondary-title{ cursor:default; padding: 4px 0px 8px 7px; color: brue; font-family: 'HG丸ゴシックM-PRO'; font-size:10px; width: 172px; background: url(images/menusub-t.png); background-repeat: no-repeat; background-position: -1px 0px; font-weight: bold; } /* 罫線 */ #nav-container .divider-horiz{ border-top-width:1px; margin:5px 5px; border-color: #C16100; } /* メニュー項目間 境界*/ #nav-container .divider-vert{ border-left-width:1px; height:15px; margin:4px 2px 0px 2px; border-color:#AAAAAA; }

    • 締切済み
    • CSS
  • CSSでポップアップメニューを作成したがIEだけメニューが表示されません。

    下記のようなCSSでポップアップメニューを作成したのですが IEだけポップアップメニューが表示されませんでした。 IEでもポップアップメニューが表示されるようにするには どのようにすればよいのでしょうか?(JavaScriptは未使用で作成) <html> <head> <style type="text/css"> #menu { position: relative; width: 102px; height: 22px; } #menu li { list-style-type: none; float: left; } #menu li a { color: gray; width: 100px; height:20px; text-decoration: none; text-align: center; border: 1px solid gray; display: block; } #menu li a:hover { background-color:#FFFFCC; } #menu ul li ul { display: none; } #menu ul li:hover ul { display:block; position:absolute; top: 22px; left: 0; } </style> </head> <body> <div id="menu"> <ul> <li> <a href="#">home</a> <ul> <li><a href="#">first</a></li> <li><a href="#">second</a></li> <li><a href="#">third</a></li> </ul> </li> </ul> </div> </body> </html>

    • ベストアンサー
    • HTML

専門家に質問してみよう