• ベストアンサー

safariでの横並びリスト(List)CSSずれについて

CSSマスターの方にご質問させていただきます。 現在横並びリストを制作しようとしております。 リストに表示する文字の高さを中央揃えにし、カーソルが触れるまでは黒色画像、hover時に赤色画像のバックグラウンドをマイナス設定にてロールオーバー効果を演出しようとしています。 IEではきちんと表示されているのですがsafariではパディング分、赤色がズレてしまい、hover時には黒色がズレてしまいます。 <UL id="sitemenu"> <LI id="side">あいうえお <LI id="side">かきくけこ </UL> /***********LI設定***********/ #side A{ width:60px; //幅 height:40px; //高さ margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; background-image : url(背景.gif); //背景 background-position : 0px 0px; no-repeat; text-align : center; //文字の位置 text-decoration : none; //文字飾り vertical-align : top; //文字の高さ padding-top : 10px; //パディング高さ float : left; } #side A:hover{ background-position : 0px -40px; no-repeat; } /***********UL設定***********/ #sitemenu{ padding-top : 0px; padding-left : 0px; padding-right : 0px; padding-bottom : 0px; margin-top : 0px; margin-left : 0px; margin-right : 0px; margin-bottom : 0px; border-width : 0px 0px 0px 0px; vertical-align : top; text-align : left; list-style-type : none; float : left; } #sitemenu LI{ float : left; } なんとか背景画像がずれない様に表示させていので、どなたかわかる方がいらっしゃいましたら大変申し訳ないのですがご教授お願いいたします。

  • HTML
  • 回答数5
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • abril
  • ベストアンサー率69% (388/560)
回答No.5

すみません、ANo.4を途中で投稿してしまいました。先程のサンプルの考え方と、現状の問題点をざっとまとめてみました。 【問題点】 ・定義の順番としては、親要素から子要素・共通部分から個別部分、がベーシックな考え方だと思いますので、#sitemenu→#sitemenu LI→#sitemenu A→#sitemenu A:hover→#b01 A~#b111 A、という順番が(定義の重複を避ける為にも)妥当でしょう。 ・#sitemenuの定義の、borderは初期値が0の為不要/vertical-alignは無効(この要素には適用されません)の為不要/floatはレイアウト上意味がない為不要。 ・"text:none;"という「?」な定義がありましたが、"text"というプロパティはありません。 【サンプルの考え方】 #sitemenu { height: 40px;←親要素<ul>の高さを決め打ち overflow: hidden;←上記の高さをはみ出した内容は非表示に (省略) } →ここで"overflow: hidden;"を定義しておくことで、height: 40px;に対して後に定義される#sitemenu Aの"padding-top: 10px;"分の差が下にはみ出してしまっても隠してしまえます。 #sitemenu LI { (省略) float: left;←横並びに height: 40px;←floatで高さが失われているので明示 text-align: center;←テキストの水平方向センタリングはここで一括定義 margin: 0;←マージンを初期化(念の為。既出の定義で<li>のマージンが初期化されている様なら不要です) } #sitemenu A { display: block;←ブロック要素化することで高さを取得 height: 100%;←親要素の40pxに対する高さを取得 background: url(../parts/bottom/botomm_BG.gif) 0 0 repeat-x;←共通部分を一括定義 font-size: 14px;←(同上) color: white;←(同上) text-decoration: none;←(同上) padding-top: 10px;←(同上) } →background-repeatの値をno-repeatではなくrepeat-xとしておかないと、画像の幅が100pxに対し、メニューの#b05の幅が116pxと超えてしまっているので右に空白ができてしまいます。 #b01 A { width: 60px; } から #b11 A { width: 93px; } →id毎にユニークなスタイルは幅だけなので、個別定義部分はこれだけで済みます。 何かイメージ通りにならないところがありましたら補足して下さい。 (分割投稿になってしまった事をお許し下さい)

koto9900
質問者

お礼

abril様 ありがとうございます。見事にピタリと揃いました! 親要素、子要素を把握して設定しないといけないんですね。 本当に助かりました!誠にありがとうございます。

その他の回答 (4)

  • abril
  • ベストアンサー率69% (388/560)
回答No.4

実際の(現在の)ソースを元に検証しました。実際の(現在の)ソースにはFirefox、Opera等でやはり不具合があります(heightとpadding-topの解釈の違い等)。その差を吸収するサンプルです。ブラウザ振り分けをする事なく、IE6.0/7.0、Firefox2.0~、Opera9.25 on Windows XP、Safari3.0 on Mac OSXで表示結果をほぼ同じにできました。 ---------------------------------------------------------------------- 【HTML】 ---------------------------------------------------------------------- (省略) <UL id="sitemenu"> <LI id="b01"><A href="index.html">トップ</A></LI> <LI id="b02"><A href="index.html">トップ</A></LI> <LI id="b03"><A href="index.html">トップ</A></LI> <LI id="b04"><A href="index.html">トップ</A></LI> <LI id="b05"><A href="index.html">トップ</A></LI> <LI id="b06"><A href="index.html">トップ</A></LI> <LI id="b07"><A href="index.html">トップ</A></LI> <LI id="b08"><A href="index.html">トップ</A></LI> <LI id="b09"><A href="index.html">トップ</A></LI> <LI id="b10"><A href="index.html">トップ</A></LI> <LI id="b11"><A href="index.html">トップ</A></LI> </UL> (省略) ---------------------------------------------------------------------- 【CSS】 ---------------------------------------------------------------------- (省略) /* ---リスト設定---*/ #sitemenu { height: 40px; overflow: hidden; list-style-type: none; padding: 0; margin: 0; } #sitemenu LI { float: left; height: 40px; text-align: center; margin: 0; } /* ---ボタン設定開始---*/ #sitemenu A { display: block; height: 100%; background: url(../parts/bottom/botomm_BG.gif) 0 0 repeat-x; font-size: 14px; color: white; text-decoration: none; padding-top: 10px; } #sitemenu A:hover { background-position : 0px -40px; } #b01 A { width: 60px; } #b02 A { width: 68px; } #b03 A { width: 68px; } #b04 A { width: 70px; } #b05 A { width: 116px; } #b06 A { width: 65px; } #b07 A { width: 83px; } #b08 A { width: 66px; } #b09 A { width: 77px; } #b10 A { width: 54px; } #b11 A { width: 93px; } /* ---ボタン設定終了 ---*/ (省略) ----------------------------------------------------------------------

  • abril
  • ベストアンサー率69% (388/560)
回答No.3

本件の直接の回答ではないのですが、端から見ていてちょっと気になりましたので。 http://www.geocities.jp/axi_wakayama/2008/0506/index.html 上記は、ANo.1-2の回答者様のアドバイスを得て改良された現時点での最終形なのでしょうか? 主要モダン・ブラウザの1つであるFirefoxで見ると、#sitemenuのリストが横並びにすらなっていませんが、これは全く問題にはされていないのでしょうか? 現状のCSSもまだ意味不明の定義が残っている様ですが… ※なお、閉じタグのあるもの(<li>))はできるだけ省略されない方がベターです。XHTMLへの以降の際などには手間が増えます。

koto9900
質問者

お礼

abril様 ありがとうございます。仮アップでしたのでFfではレイアウトずれていたみたいですね。申し訳ありません。 只今回答いただいたCSSに変更いたしました。 参考アドレスはこちらから http://www.geocities.jp/axi_wakayama/2008/0506/index.html

koto9900
質問者

補足

htmlに <LINK rel="stylesheet" href="safari用スタイル" type="text/css"> <!--[if gte IE 5]><LINK rel="stylesheet" href="IE用スタイル" type="text/css"><![endif]--> 上記を記述するとほぼcssは振り分けられるみたいですね。 ただしこの方法だと一行ですがhtmlの記述が増え、cssも複数増えそうです。 私は普段 A.html  └A専用css   └レイアウトcss と@import urlを使い付加を減らしています。 『<!--[if gte IE 5]><![endif]-->』この記述をhtml内では無く外部css内で記述する方法はないでしょうか? 本題とは少し変わってきましたが、ひとつのcssで全てのブラウザに対応するのが無理なのかもしれませんね。 ご存知の方がいらっしゃいましたらお手数ですがご教授ください。

  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.2

padding-top10px分があるので、 画像が40pxで変わるのであれば、 heightが30pxかもしれないです。

koto9900
質問者

お礼

kuzumiHK様 再度ありがとうございます。 ご指定の通り一度やってみたのですが、safariならばばっちりズレずに揃うのですがIEだと10px分高さが足りなくなってしまうのです(;-;) safariの時だけsafari専用cssを読み込ませるように出来れば、解決できそうですね。確かそのやり方があったような気がしますが・・・ 参考アドレスはこちらから http://www.geocities.jp/axi_wakayama/2008/0506/index.html

  • kuzumiHK
  • ベストアンサー率72% (132/183)
回答No.1

Safariの環境で確認できていませんが、 スタイルの設定が複雑になりすぎているようなので、 単純化して、こんな感じではいかがでしょうか。 #sitemenu{ padding : 0; margin : 0; list-style-type : none; } #sitemenu LI{ padding : 0; margin : 0; display : inline; float : left; } #side A{ display : block; width:60px; //幅 height:40px; //高さ margin : 0; background-image : url(背景.gif); //背景 background-position : 0px 0px; no-repeat; text-align : center; //文字の位置 text-decoration : none; //文字飾り padding : 10px; //パディング高さ } #side A:hover{ background-position : 0 -40px; } <UL id="sitemenu"> <LI id="side"><A>あいうえお</A></LI> <LI id="side"><A>かきくけこ</A></LI> </UL> ※<LI>のなかに<A>タグがあることが前提です。 また、もし背景が単色でしたら、background部分は単純に、 AとA:hoverに違う背景色を入れるだけで済みそうです。

koto9900
質問者

お礼

kuzumiHK様 CSSの省略化ができました。ありがとうございます。 引き続き解決策を募集しております。 テスト段階の物をアップしてみましたのでこちらを見ていただければと思います。 http://www.geocities.jp/axi_wakayama/2008/0506/index.html

関連するQ&A

  • safariだけCSSが崩れてしまいます

    safariだけCSSが崩れてしまいます。 初心者ですが、教えて下さい。 コンテンツ部分の中に、画像(説明文付き)を横並びに3列並べて表示するためにfloatで指定してあります。 下記のように並べたいのですが、safari以外のブラウザでは全てうまく表示されるのに、safariだけ2と3が下に落ちて崩れてしまいます。 1 2 3 4 5 6 どのようにしたら横に並んでくれるのか、わかりません。。 どうかお詳しい方、ご教授下さい。 ______________________________________ #secondary { float:left; width:705px; padding:10px 0 0 15px; margin:0; } .index .module { float:left; width:210px; margin:0 17px 0 0; padding:0 4px; text-align:left; } .galleries { background:#eee; float:left; width:100%; margin:0 0 15px; position:relative; } .gallery .galleries { float:left; position:relative; width: 720px; margin:0 0 15px; padding:0; list-style:none; padding-top:10px; line-height:1.4em; } .gallery .galleries .thumb { float:left; margin:0 10px 10px 0; } .index .galleries { margin-bottom:5px; } .galleries ul { float:left; margin-left:0; margin-bottom:0; list-style:none; text-align:left; } .galleries li { background-image:none; float:left; position:relative; width:220px; height:6.4em; overflow:hidden; margin-bottom:0; padding:75px 0 1.6em 15px; } .archive .galleries li { height:10.5em; } .galleries h3 { margin:0 10px 0 4px; font-size:100%; } .galleries h3 a, .galleries a.img, .galleries h3 a:visited { border-width:0; } .galleries .img { position:absolute; top:4px; left:15px; } .galleries .img img { display:block; } .galleries p { margin:0 10px 0 4px; } .galleries div { margin:0 4px; } .gal { background:url("../images/bg_gal.gif") 11px 0px no-repeat; margin:0; } html>body .gal { background-image:url("../images/bg_gal.png"); }

    • 締切済み
    • CSS
  • CSSについての質問です

    下記のプログラムについて解らないのですが、containerの内のh1と ulの位置関係ですがh1にmargin-bottom: 0と指定し、ulにmargin-top: 0としてあるが、この2つがくっつかないのは何故でしょうか? 親切な方、ご回答いただけますようよろしくお願いします。 body{ background-color: #f2f2f2; padding: 0; margin: 0 } div#container { width: 750px; margin-left: auto; margin-right: auto; background-color: white } h1{background-image: url(画像.jpg); width: 640px; height: 120px; margin-bottom: 0; margin-left: 50px; } ul{ list-style: none; text-align: center; padding: 0; margin-left: 10px; margin-top: 0 } li{ width: 128px; float: left; padding: 0px; margin: 0px; }

  • CSSの継承について...

    CSSの勉強をしつつ、HPビルダー17を使ってHPの制作しているですが、 前のulタグで使った背景画像がずっと継承されて困っております。 当方の内容です↓ 【CSS記述】 ----------------------- #manu-nanyo{ display: block; position: absolute; background-image: url(fu/area_nanyo.png); background-repeat: no-repeat; background-position: center top; color: black; width: 200px; height: 40px; } .job-menu ul{ display: block; list-style-type: none; margin-top: 0px; margin-right: auto; margin-bottom: 0px; margin-left: auto; padding-top: 10px; padding-bottom: 10px; border-right-width: 1px; border-right-style: solid; border-right-color: silver; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: silver; text-decoration: none; } .job-menu li{ margin: 0; padding: 0; background: url(img/migi_aka.png) left no-repeat; } .job-menu a{ display: block; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 14px; color: black; font-size: 15px; text-decoration: none; } .job-menu a:hover{ background-color: rgb(204, 204, 204); color: red; } #newshop_bunner{ frot: left; width: 200px; padding-top: 10px; text-align: left; background-position: top left; } .newshop-banner ul{ margin-top: 20px; margin-left: 0; padding-left: 0; } .newshop-banner li{ text-decoration : none; text-align : right; font-size: 12px; } .newshop-banner a{ margin-top: 0px; padding-top: 5px; padding-right: 0px; padding-bottom: 5px; padding-left: 0px; color: blue; font-size: 12px; text-decoration: none; text-align: right; } .newshop-banner a:hover{ background-color: white; color: lime; } ul.sample{ width:100%; margin-top:20px; font-size:10px; padding-left:0; margin-left:0; } ul.sample li{ list-style-position: outside; background-color: transparent; background-repeat: repeat; background-attachment: scroll; background-position: 0% 0%; background-size: auto auto; background-origin: padding-box; background-clip: border-box; padding-top: 3px; padding-right: 10px; padding-bottom: 3px; padding-left: 10px; width: 120px; float: left; border-width: 2px; border-color: rgb(255, 238, 219); border-style: ridge; } .list-test1{ float: left; list-style-type: none; margin-top: 40px; padding-top: 40px; color: orange; } 【HTML記述】 ----------------------- <div id="manu-nanyo"> <div class="job-menu"> <ul> <li><a href="*">野球</a> <li><a href="*">サッカー</a> <li><a href="*">テニス</a> <li><a href="*">ゴルフ</a> <li><a href="*">バスケ</a> </ul> </div> <div id="newshop_bunner"><img src="img/newstore-img.png" alt="新店舗"> <ul class="newshop-banner"> <li><a href="*"><img src="#">店名○○○○○お店ネーム</a> <li><a href="*"><img src="#">店名○○○○○お店ネーム</a> </ul> <ul class="sample"> <li><a href="#">テスト1</a> <li><a href="#">テスト2</a> <li><a href="#">テスト3</a> <li><a href="#">テスト4</a> <li><a href="#">テスト5</a> </ul> <ul class="list-test1"> <li><a href="#">トップページ</a> <li><a href="#">テストページ1</a> <li><a href="#">テストページ2</a> </ul> </div> ----------------------- .job-menu li で使った背景画(矢印)・スタイルが、その後 li を使う度に継承されてしまいます。 クラス名やID名を付けてそれぞれの属性を指定すれば分居ができるのかと色々と試してみたのですが旨くいかず・・・ (ul属性・a属性で分けても継承されてしまいます) 試し過ぎて、もう意味が分からなくなってしまって自分では解決出来そうにないので、初歩的なことで申し訳ありませんが、質問をさせて頂きました。 ネット等で調べた感じでは、「クラスを分けて指定すればulの住み分けが出来る」と判断したのですが、そういうことではないのでしょうか? それとも根本的な何かを履き違えしているのでしょうか? 宜しくお願い致しますm(_ _)m

  • CSS 横並びリストの書き方はどちらがよいでしょうか

    スタイルシートで横並びリストを作成するとき、li { display: inline; } を使う方法と、li { display: block; float:left; } を使う方法がありますよね。皆さんは、意識して、使い分けられていますか? どちらで表現しようか、よく迷います。どちらの方法でも同じレイアウトにできるように思ってしまっていて。。でも自分の気付いていないデメリットがあるのかな?と気になります。「こうしたい場合、こちらのレイアウトだと無理」とか、「これではこのブラウザで表示が崩れる」など、お気づきのことがあれば、教えていただけないでしょうか。 下に、自分で確認用に作ったhtmlがあるので、そのままブラウザで見ていただければと思います。お手数ですが、よろしくお願いします。 ========================= <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>横並びサンプル</title> <style type="text/css"> <!-- /* リスト:インライン ------------------------------------------------------------ */ #yoko1 li { display: inline; } #yoko1 a { display: block; float:left; } #yoko1 li { list-style-type: none; margin:0 5px; } #yoko1 a { padding: 5px 10px; margin: 5px; text-decoration:none; border:1px solid #CCFF33; } #yoko1 a:hover { background-color:#CCCCFF; } #yoko2 { clear:left; } /* リスト:ブロック ------------------------------------------------------------ */ #yoko2 li { display: block; float:left; } #yoko2 a { display:block; } #yoko2 li { list-style-type:none; margin:0 5px; } #yoko2 a { padding: 5px 10px; text-decoration:none; border:1px solid #CCFF33; } #yoko2 a:hover { background-color:#CCCCFF; } --> </style> </head> <body> <div id="yoko1"> <ul> <li><a href="#">あ</a></li> <li><a href="#">い</a></li> <li><a href="#">う</a></li> </ul> </div> <div id="yoko2"> <ul> <li><a href="#">あ</a></li> <li><a href="#">い</a></li> <li><a href="#">う</a></li> </ul> </div> </body> </html>

    • ベストアンサー
    • HTML
  • IE6で画像の下に余白が入ってしまいます。

    CSSを使ってレイアウトをしているのですが、 <ul> <li>画像</li> <li>画像</li> <li>画像</li> </ul> でなぜか画像ごとに、下の部分に少しだけ余白ができてしまいます。 CSSでmarginやpaddingを0にしたり、 http://www.happy-crossing.com/tagmemo/log/eid11.html にあるようにvertical-align:bottomにしたり・・・ それでもなぜか下の余白が表示されています。 こちらの方は治ったみたいなのですが・・・ 他のブラウザはいろいろ見ましたが、余白などなく表示されていました。 Dreamweaver上でも少し余白が見えています・・・ お心当たりのある方がいらっしゃいましたら、どうかよろしくお願致します。 CSSは以下のように記述しています。 ul { float: left; margin: 0px; padding: 0px; list-style: none; margin-top: 45px; } li { width: 150px; background-repeat: no-repeat; padding-left: 13px; padding-bottom: 0px; height: 140px; float: left; vertical-align: bottom; margin-bottom: 0px; }

    • ベストアンサー
    • HTML
  • css: IEでsidebarが表示されない

    cssで2カラムのページを左右を両方floatさせて作っています。 firefoxでは表示されるsidebar(背景、画像、テキストを含むすべて)がIE7では表示されません。clearfixの問題かと思いclearfixを入れてみましたがうまくいきませんでした。 どうしたらよいかご存知の方がいたら教えてください。よろしくお願いします。 ちなみにCSSの主要部分は以下のとおりです。 /*--- container ---*/ #container {position: relative;     background:url(images/background.jpg) repeat-y; width: 800px; hight: 600px; padding: 0; margin-left: auto; margin-right: auto; text-align: left; border: 0; } /*--- header ---*/ #header {width: 800px; height: 107px; margin:0;} /*--- side-bar ---*/ #side-bar{position:absolute; background: transparent url(images/menu_bckgrnd.png) center center no-repeat; width: 150px; padding:0; float:left;} #side-bar ul { margin: 0; padding: 50px 50px 50px 50px;    ist-style: none;         width:30px;} #side-bar li { margin: 0; padding: 0;} #side-bar li a{ display:block;} #side-bar a:hover{position: relative; top: 1px; left: 1px;} /*--- main-nav: content area ---*/ #main-nav {background: url(images/design.png) top left no-repeat; width: 610px; margin-top: 0 0 0 150px; padding: 0 10px 0 30px; float:right;} #main-nav a:hover {position: relative; top: 1px; left: 1px; } #content1{ float:left; width:200px; margin: 0 2px 20px -20px; background:#fff;} #content2{ float:left; width:200px; margin: 0 2px 20px 2px; background:#fff;} #content3{ float:left; width:200px; margin: 0 2px 20px 2px; background:#fff;} /*--- footer ---*/ #footer {width: 800px; height: 100px; background: transparent; margin: -100px 0 0 0; clear: both; text-align:center; padding-top:50px;} /* -- clearfix -- */ .clearfix{ zoom:1; } .clearfix:after{content:'.'; display:block; visibility:hidden; height:0; clear:both;}

    • ベストアンサー
    • CSS
  • HTMLやcssに詳しい方教えてください

    HTML、cssに詳しい方、助言お願いします。 footerの部分なのですが、footerより上の部分(サイドのナビやメイン部分)にj Query、javascriptを入れる(入れたのはアコーディオン)と、footerの部分がおかしくなります(footerのbackground-colorが一部消えるなど) どなたか、もしおかしい部分があるのでしたら、おかしい部分の指摘をお願いします。xxxはテキストを入れている部分です。 footerのHTML <div class="footercolor clearfix"> <div id="footer"> <div class="footerbox1"> <ul class="footertext1"> <li><a href="../ranking.html">xxx</a></li> <li><a href="../area-top/area.html">xxx</a></li> </ul></div> <div class="footerbox2"> <ul class="footertext2"> <li><a href="../index.html">xxx</a></li> <li><a href="../site.html">xxx</a></li> <li><a href="../info.html">xxx</a></li> <li><a href="../system.html">xxx</a></li> </ul></div> <div class="footerbox3"> <ul class="footertext3"> <li><a href="../inquiry.html">xxx</a></li> </ul></div> </div> <address class="copyright">Copyright (C) xxx.com 2014 All Rights Reserved.</address> footerのcss .footercolor{ background-color:#FFCC99; } #footer{ width:960px; margin:0 auto; } .footerbox1{ width:320px; float:left; } .footerbox2{ width:320px; float:left; } .footerbox3{ width:320px; float:left; } .footertext1{ text-align:center; margin-top:12px; list-style:none; padding:3px; } .footertext2{ margin-top:12px; list-style:none; padding:3px; text-align:left; margin-left:80px; } .footertext3{ text-align:center; margin-top:12px; list-style:none; padding:3px; margin-left:50px; } .footertext1 a:hover{ filter:alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; } .footertext2 a:hover{ filter:alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; } .footertext3 a:hover{ filter:alpha(opacity=50); -moz-opacity: 0.5; opacity: 0.5; } .copyright{ clear:both; text-align:center; font-weight:bold; padding-top:50px; padding-bottom:10px; }

    • 締切済み
    • SEO
  • スタイルシートの横並びリスト中央配置について

    #Area_Navi { margin: 0; padding: 0; } #Area_Navi ul { margin-left: auto; margin-right: auto; text-align: center; list-style-type: none; list-style-position:inside; } #Area_Navi li { text-align: center; display: inline; padding: 0; margin-left: auto; margin-right: auto; float: left; width: 200px; } #Area_Navi a { display: block; border-left: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; background-color: #FFFFFF; font-size: 20pt; padding: 3px; text-decoration: none; color: #000000; margin: 1px 0px; text-align: center; } スタイルシートは上記なのですが、うまく中央配置されず 半端に左寄せになっています。 windows7 firefox を使用しています。 調べて position:relative; と記載しても上手く中央寄せになりませんでした。 どなたか、教えて頂けませんか。 宜しくお願い致します。

    • ベストアンサー
    • CSS
  • 横並びのメニュータブについて

    横並びタブナビゲーションのテキストを画像の後ろに含める方法で試行錯誤しております。 下記のCSS記述ではie8及びFirefoxはテキストが隠れ動作確認も問題ないのですが、ie6dではテキストが隠れず画像の下に表示されてしまいます。 どこを訂正または記述追加すればよいか困っております。 ぜひ、ご教授いただければ幸いです。 CSS /* ---------------- .navi .naviin ---------------- */ .navi { background:#063686 url("/test/menu_bg.png") repeat-x top; border-bottom:1px solid #8fa5ca; } .navi .naviin{ width:990px; clear: both; margin: 0 auto; } .navi .naviin ul.tab{ height:30px; } .navi .naviin ul.tab li{ float:left; } .navi .naviin ul.tab li a.tab_01{ width:163px; height:0; overflow:hidden; display:block; padding-top:30px; margin-right:2px; background:url(/test/navi01_n.png) no-repeat left top; } .navi .naviin ul.tab li a.tab_02{ width:163px; height:0; overflow:hidden; display:block; padding-top:30px; margin-right:2px; background:url(/test/navi01_n.png) no-repeat left top; } .navi .naviin ul.tab li a.tab_03{ width:163px; height:0; overflow:hidden; display:block; padding-top:30px; margin-right:2px; background:url(/test/navi01_n.png) no-repeat left top; } .navi .naviin ul.tab li a.tab_04{ width:163px; height:0; overflow:hidden; display:block; padding-top:30px; margin-right:2px; background:url(/test/navi01_n.png) no-repeat left top; } .navi .naviin ul.tab li a.tab_05{ width:163px; height:0; overflow:hidden; display:block; padding-top:30px; margin-right:2px; background:url(/test/navi01_n.png) no-repeat left top; } .navi .naviin ul.tab li a.tab_06{ width:165px; height:0; overflow:hidden; display:block; padding-top:30px; background:url(/test/navi06_n.png) no-repeat left top; } /* ---------------- a.の設定 ---------------- */ .navi .naviin ul.tab li.on a.tab_01{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li.on a.tab_02{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li.on a.tab_03{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li.on a.tab_04{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li.on a.tab_05{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li.on a.tab_06{ background:url(/test/navi06_o.png) no-repeat left top; } /* ---------------- hoverの設定 ---------------- */ .navi .naviin ul.tab li a:hover.tab_01{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li a:hover.tab_02{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li a:hover.tab_03{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li a:hover.tab_04{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li a:hover.tab_05{ background:url(/test/navi01_o.png) no-repeat left top; } .navi .naviin ul.tab li a:hover.tab_06{ background:url(/test/navi06_o.png) no-repeat left top; } /* ---------------- submenu ---------------- */ .navi .naviin ul.submenu{ padding:6px 0 6px 0; } .navi .naviin ul.submenu li{ float:left; padding:0 7px 0 10px; background:url(/test/sub_line.png) no-repeat left center; white-space:nowrap; } .navi .naviin ul.submenu li a{ padding:0 0 0 12px; color:#ffffff; background:url(/test/triangle.png) no-repeat left center; } .navi .naviin ul.submenu li.firstList{ background:none; padding:0 7px 0 5px; } HTML <div> <div class="navi"> <div class="naviin"> <ul class="tab"> <li class="on"><a class="tab_01" href="">タブ01</a></li> <li><a class="tab_02" href="">タブ02</a></li> <li><a class="tab_03" href="">タブ03</a></li> <li><a class="tab_04" href="">タブ04</a></li> <li><a class="tab_05" href="">タブ05</a></li> <li><a class="tab_05" href="">タブ06</a></li> </ul> <ul class="submenu clearfix"> <li class="firstList"><a href="">サブ01</a></li> <li><a href="">サブ02</a></li> <li><a href="">サブ03</a></li> <li><a href="">サブ04</a></li> <li><a href="">サブ05</a></li> </ul> </div> </div> </div>

  • display:inlineで横並びにしたメニュー

    のa:とa:hoverをbackground-imgでロールオーバーさせたいんですが、画像を大きく調整できません。line-heightとheightをいじってみましたが画像そのものの高さは変わりません。サイドメニューを作った時はDL,DT,DDでdisplay:blockでうまく出来ました。下記に現状のHTMLとCSSを記述しますのでよろしくおねがいします。 html側 <div id="banner_menu"> <ul> <li><a href="#">あいうえお</a></li> <li><a href="#">かきくけこ</a></li> <li><a href="#">さしすせそ</a></li> <li><a href="#">たちつてと</a></li> <li><a href="#">なにぬねの</a></li> <li><a href="#">はひふへほ</a></li> </ul> </div> CSS側 #banner_menu { clear: both; margin: 0px; padding: 7px 0 5px 15px; border-top: solid 1px #999; border-bottom: solid 1px #999; width: auto; margin-left: auto; margin-right: auto; background-color: #ffffff; } #banner_menu ul { text-align: left; padding-bottom: 1px; margin: 0px; } #banner_menu li { color: #ffffff; display: inline; padding-left: 7px; padding-right: 5px; border-left: solid 1px #999; width: 120px; } #banner_menu a { color: #4d4d4d; font-weight: normal; background-color: none; text-decoration: none; font-size: 12px; background: url(var_gry120x48.gif) no-repeat center center; line-height:20px; height: 20px; } #banner_menu a:hover { color: indianred; font-weight: normal; background: url(var_gry120x48_2.gif) no-repeat centert bottom; }

専門家に質問してみよう