FirefoxとIE6でのbackground height width表示の違い

このQ&Aのポイント
  • ホームページ作成初心者が、FirefoxとIE6でbackgroundのheightとwidthの表示に違いが生じる問題に挑戦しましたが、解決できずギブアップしています。
  • 質問者はglobalnaviというdiv内のglobalnavi liをfloat-rightで横並びにしたいと考えていますが、width 800pxとheight 30pxに設定しても、FirefoxとIE6ではずれが生じてしまうとのことです。
  • 質問者はbackground imageを30×800のバーとして作成し、独学でCSSを学んでいるため乱雑なCSSになってしまっていると謝罪しています。相談者は解決策を教えてほしいと求めています。
回答を見る
  • ベストアンサー

firefox とie6 でのbackground height wi

firefox とie6 でのbackground height width表示の違い ホームページ作成しています。 初心者です。 globalnavi というdiv のなかに globalnavi li をfloat-rightで横並びにしました。 width 800px height 30px にしたいのですが IEやfirefoxでずれが生じます。よくあるトラブルのよなのでバグ対策など調べて試してみましたが両方がぴったり合うことはありませんでした。丸一日挑戦しましたがギブアップです。background image は30×800のバーをpng形式で作りました。独学でまだ理解していないことばかりで乱雑なcssですみません。ご教示をお願いします!! #globalNavi{ background-image:url(../menubar.png); width:790px; height:30px; font-size:14px; color: #1C1D21; text-align:center; } #globalNavi li{ float:right; overflow:hidden; width:80px; height:30px; list-style-type:none; text-align:center; color: #1C1D21; border-left-width: 2px; border-left-style: solid; border-left-color: #999; line-height:0; } #globalNavi a{ width:80px;   height:30px; display:block; text-align:center; line-height:normal; } #globalNavi a:hover{ width:80px; height:30px; background-position: 0 -80px; background-color:#B7D68D; text-decoration: none;

  • HTML
  • 回答数2
  • ありがとう数8

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

  • ベストアンサー
回答No.2

>globalnavi要素の下のコンテンツの幅 これはもしかして余白のことでしょうか? 教本がどのようになっているかはわかりませんが、デフォルトのスタイルはリセットされましたか? ul要素にはmargin:0;とpadding:0;を指定しなければブラウザのスタイルが適用されて余白ができてしまいます。 >何故line heightが line-height:0;を指定したあとにline-height:normal;を指定されていたので、トリッキーだなと思ったからでしょうか。普通はline-height:0;はあまり目にしません。 ソースに関してですが、li要素のoverflow:hidden;はたぶん必要ないと思います。 また、質問時のソースではborderでナビゲーションメニューの区切りを作られていますが、おそらくこれもズレの原因になっています。 widthとpaddingまたはborderを一緒に指定するとIEでのズレの原因になります。 以下のページを一読されるとよいと思います。 http://adp.daa.jp/archives/000265.html 今回の場合はli要素内のa要素に対してborderを指定することでこれを回避できそうです。 それとwidthとheightを指定した要素の子要素でまた同じ値のwidthとheightを指定するとIEは時々変な挙動になる(?)ので、できるだけ削れるところは削るほうがいいと思います。 #globalNavi{ width: 800px; height: 30px; margin: 0; padding: 0; font-size: 14px; background: url(../menubar.png) no-repeat 0 0; } #globalNavi li{ float:right; width:80px; height:30px; list-style-type:none; } #globalNavi a{ display: block; height: 30px; border-left: 2px solid #999; color: #1C1D21; text-align: center; } #globalNavi a:hover{ background-color: #B7D68D; background-position: 0 -80px; text-decoration: none; } こんな感じでどうでしょうか?

yaclle
質問者

お礼

うまくいきました! 思うように作っていくのは 考えていたよりも問題が発生するので大変です。 また質問させていただけたらと思います。 本当に有り難うございました。

その他の回答 (1)

回答No.1

line-height辺りが怪しい気がしますが・・・ どの部分がずれるのでしょうか?

yaclle
質問者

お礼

cssを貼り忘れました。 #globalNavi{ background-image:url(../menubar.png); margin-right:0; height:30px; font-size:14px; color: #1C1D21; text-align:center; } #globalNavi a{ float:right; width:80px; height:30px; display:block; text-align:center; line-height:normal; border-left-width: 2px; border-left-style: solid; border-left-color: #999;

yaclle
質問者

補足

ありがとうございます! 購入した本をみながら似ているcssをコピーしたところ (li 要素を削除しました。) line heightが大きくなる問題はクリアできました。 何故line heightが怪しいと思われたのですか?私は何が悪かったのかもサッパリです。 あとはIEで右にはみ出す問題があります。firefoxではきれいにできています。 このglobalnavi要素の下のコンテンツの幅がIEで小さく表示されているためにずれているという可能性がないとも言えないのですが、確率としては少ないと思っています。

関連するQ&A

  • 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; }

  • Firefoxでheight:100%がきかない?

    ソースは以下のとおりです。 IEでは#container内のDIV要素は全てheight:100%で表示されるのですが、Firefoxでは、高さ:100%がききません。 Firefoxでもページの下まで表示されるようにしたいと思います。 よろしくお願いいたします。 <!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" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-type" content="text/html; charset=UTF-8" /> <title>サンプル</title> <style type="text/css"> <!-- /*全体の設定*/ * { margin: 0px; padding: 0px; font-size: 12px; font-family:"MS Pゴシック", Osaka, "ヒラギノ角ゴ Pro W3"; font-weight: normal; line-height: 150%; color: #000; } /*ページ全体の設定*/ html,body { height:100%; } body { background-color: #FFF; } /*カラムの設定・IE6のハック*/ #wrapper { width: 1000px; float:left; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; background-color:#FF0000; } body > #wrapper { height:auto; } /*ヘッダの設定*/ #header { width: 1000px; height: 123px; clear: both; } /*メインコンテンツの設定*/ #container { width: 1000px; clear: both; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; background-color:#00FF00; } /*左カラム外側(2カラム内包)*/ #container_left01 { width: 732px; float:left; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; } /*左カラム(左側)*/ #container_left02 { width: 268px; float:left; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; } /*左カラム(右側)*/ #container_left03 { width: 463px; float: right; border-left-width: 1px; border-left-style: solid; border-left-color: #000000; height: 100%; min-height: 100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; background-color:#FFFF00; } /*右カラム*/ #container_right01 { width: 267px; float:left; border-left-width: 1px; border-left-style: solid; border-left-color: #000000; height: 100%; min-height:100%; margin: 0px 0px 0px 0px; overflow:hidden; _overflow: show; } --> </style> </head> <body> <div id="wrapper"> <div id="header"> <h1>あああ</h1> </div> <div id="container"> <div id="container_left01"> <div id="container_left02">あああ</div> <div id="container_left03">あああ</div> </div> <div id="container_right01">あああ</div> </div> </div> </body> </html>

  • CSS IEとfirefoxおなじレイアウトにしたいのですが

    初心者です。↑質問ですが IEでレイアウトはみれてもfirefoxでは崩れてしまいそれの 対処で困ってしまっています。 どなたかアドバイスください。 ↓のCSSなのですが、途中混乱したままの投稿となってしまっていますが おわかりなられるかた助けてください! ロゴがメイン画像にのっかったりと崩れがたえません。 body{ margin-top: 60px; padding: auto; background-color: #000000; background-image: url(../image/back.gif); color: #000000; cursor: crosshair; } P{ margin: 0; } h1{ font-family: serif; font-size: 5pt; color: #000000; } /*imgDIV↓*/ #lightbox{ width: 100%; z-index: center; text-align: center; background-repeat: no-repeat; } /*toplogo*/ #wrapper{ position: relative; width: 100%; margin: auto; margin-bottom: 20px; margin-left: auto; margin-right: auto; } #logo{ padding-top: 50px 50px 50px 50px; position: absolute; left: 410px; } /*グローバルナビ*/ #hako { margin-top: 150px; line-height:50px; padding-left: 900px; } #hako li { display:inline; list-style:none; padding-right:12px; float: left; background: url(../image/bpin.gif) left top no-repeat; line-height: 12px; padding-left: 17px; } #hako li{ font-family: DejaVuSans; font-size: 12px; } #hako li a { color:#C0C0C0; text-decoration:none; border-bottom:solid 2px #ADABAE; } #hako li a:hover { color:#FFFF66; border-bottom:solid 1px #CC0000; }

  • 【CSSについて】リストをフロートするとfirefoxでボーダーが消える

    お世話になっております。 今回は、CSSの質問です。 IE6.0とFF3.0の違いなのですが、ソースを以下に記述します。 ***HTML*** <ul id="navi"> <li><a href="#">風景</a></li> <li><a href="#"> 生き物</a></li> <li><a href="#">建物</a></li> <li><a href="#">乗り物</a></li> </ul> ***CSS*** #navi { margin-left: 0px; padding-left: 0px; list-style-type: none; width: 600px; border-right: 1px solid #333333; } #navi li { float: left; border-left: 1px solid #000000; border-top: 1px solid #333333; border-bottom: 1px solid #000000; width: 149px; } #navi a { display: block; background-color: #ff9900; color: #FFFFFF; text-decoration: none; width: 149px; line-height: 30px; text-align: center; font-size: 12px; font-weight: bold; letter-spacing: 0.5em; } #navi a:hover { background: #00FFFF; color: #000000; } IEではボーダーで区切られたナビがキレイに表示されますが、FFでは右端のボーダーが消えてしまいます。 これもハックしなきゃならないものですか? とりあえず、背景に画像を使用することで逃げられるのですが、すっきりしませんので対処法を教えてください。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • W3C Validatorで検証するとbackground-imageが

    W3C Validatorで検証するとbackground-imageが正しくありません。と出てしまいます。なぜでしょうか?ちなみにソースは以下の通りです。 よろしくお願いします。 .menu A{ background-attachment : fixed; background-image : url(../top/botan ao.gif); text-align : center; width : 95px; height : 45px; vertical-align : middle; line-height : 15px; background-repeat : no-repeat; text-decoration : none; color : #e9d161; float : left; padding-top : 5px; font-weight : 600; }

  • IE6での表示がうまくいかず困っています

    すみません!先ほど同様の質問をしたのですが、文字数オーバーで途中で切れてしまっていたので本当に恐縮ですが再度お願いいたします。 コーディングを勉強中なのですが、どうしてもIE6での表示がうまくいかず、大変困っています。色々ググって調べてみたのですが、決定的な原因がわからず本当にどうすればよいのかわかりません・・・。どなたかご教示いただけませんでしょうか。 他のFireFOX,Safari,IE8では多少のズレはあるものの普通に表示されました。IE6では背景画像とフッターのみしか表示されない。という状況です。 CSSは以下です。 /* generated by csscreator.com */ html{ height:100%; } body{ margin:0; padding:0; text-align:center; color: #fff; background: #000000 url("../images/back-right.gif") repeat-x; position: relative; text-decoration: none; height:100%; } body > #pagewidth { height: auto; } img { border-style:none; } ul{ margin:0; padding:0; text-align:left; } li{ list-style-type: none; line-height:100%; } p{ margin:0; padding:0; text-align:right; } #bg_wrap { height: 423px; width: 50%; top: 0px; background: url(../images/back-left.gif) repeat-x; position: absolute; } #pagewidth{ width: 918px; height: 100%; min-height: 100%; text-align:left; margin: 0px auto; position: relative; background: url(../images/left-col.gif) left repeat-y; } #left-container{ width: 130px; height: 100%; float:left; position:relative; padding-left: 23px; } #header{ width: 100%; height: 266px; color: #000; background-color: #fff; } #navigation{ width: 100%; color: #fff; padding-bottom: 5em; } #main-container{ width: 764px; float: right; display:inline; position: relative; } #maincontents{ padding-right: 21px; } #footer{ height: 50px; width: 100%; text-align:left; padding-left: 95px; clear: both; } /* *** Float containers fix: http://www.csscreator.com/attributes/containedfloat.php *** */ .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix{display: inline-block;} /* Hides from IE-mac \*/ * html .clearfix{height: 1%;} .clearfix{display: block;} /* End hide from IE-mac */ /*printer styles*/ @media print{ /*hide the left column when printing*/ #leftcol{display:none;} #twocols, #maincol{width:100%; float:none;} } 以上です、よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • ナビゲーションの書き方(HTML、CSS)

    以下のように書いているのですが、バックグラウンドの所(#navbar)と、 文字を入れている所(#navbar li a)のところがきれいに重なって 表示するようにできません。 どなたか教えて頂ければ幸いです。宜しくお願いします。 ■HTML <div id="navbar"> <ul> <li id="top"><a href="#" title="#">TOP</a></li> <li id="basic"><a href="#" title="#">基本</a></li> </ul> </div> ■CSS #navbar { background-image:url(../images/navbar.gif); padding:0px; width:1000px; height:35px; float:left; border:solid 1px #D5D5D5; border-bottom:5px solid #66CC33; } #navbar ul{ margin-left: 0px; } #navbar li{ float:left; text-align:center; font-family: Arial, Helvetica, sans-serif; font-size:14px; letter-spacing:1px; line-height:35px; list-style-type:none; width:75px; color:#666666 } #navbar li a { float:left; font-weight:600; font-size:12px; display:block; height:35px; border-right:solid 1px #D5D5D5; width:74px; } #navbar li#top { width:55px; } #navbar li#top a { width:54px; } #navbar li#basic { width:55px; }

    • ベストアンサー
    • HTML
  • ドリームウィーバーでリスト作成すると余白ができる

    ドリームウィーバーで、CSSでサイドナビをつくっています。 リストをたてにし、1項目づつボーダーでかこっています。 IE でも ファイアーフォックスでもきれいに表示されるのですが、 ドリームウィーバー上では、左に余白ができる分、右に飛び出し、 その横のボックスが下にずれるということが起こっています。 ご指導お願いします。 ~html <div id="sidenavi"><img src="img/sidenavi.jpg" width="180" height="165"> <ul> <li> AAAAAAA</li> <li class="menu">BBBBBB</li> <li class="menu">CCCCCCC</li> <li class="menu">DDDDDDD</li> <li>HTML</li> <li>プログラム</li> </ul> </div> ~CSS #sidenavi { float: left; height: 600px; width: 180px; margin: 0px 0px 0px 2px; padding: 0px; background-color: #FFFFFF; background-image: url(img/rose.jpg); background-repeat: repeat-y; } ul { padding: 5 0 0 0px; margin: 0px; list-style-type: none; background-position: left; text-align: left; } li { width: 180px; height:25px; margin: 0 0 0 0px; padding: 5 0 0 10px; background-color: #DD041A; text-align: left; font-size: 14px; font-family: "MS Pゴシック", "Osaka"; border-top: 1px solid #CC0099; border-right: 1px none #CC0099; border-bottom: 1px solid #CC0099; border-left: 1px none #CC0099; color: #FFFFFF; font-weight: bold; } .menu{ margin-left: 0px; padding-left:19px; background-color: #ffffff; width: 180px; font-weight: normal; color: #333333; }

  • 画像を使ったドロップダウンメニュー

    ホームページのメニューボタンにドロップダウンを使おうと思っています。 色々ネットから調べて自分で試したのですが、 オンマウスで画像を変えたりと、少し複雑な為、うまく表示できません。 文字数の関係上スタイルシートのコードだけしか貼れませんが、 よろしくお願いいたします。 /* ナビゲーション */ #navi_continer { position: relative; z-index:100; width: 400px; height:110px; } #navi { position: absolute; width: 100px; background-image: url(./img/menu/03a.jpg); height: 110px; } #navi ul { margin: 0; padding: 0; list-style: none; } #navi li { color: #fffff; float: left; width: 100px; margin: 0; } #navi li a { font-size: 14px; color: #ffffff; display: block; width: 100%; padding: 3px 0; text-align: center; font-weight: bold; text-decoration: none; background-image: none; } #navi li a:hover { color: #ffffff; background-image: url(./img/menu/03b.jpg); height: 110px; width: 100px; } /* サブメニュー */ #navi ul.sub { background: #eeeeee; } #navi ul.sub li { float: none; } #navi ul.sub li a { color: #666666; background: none; font-size: 12px; font-weight: normal; padding: 3px 0; border-top:1px solid #000099; } #navi ul.sub li a:hover { color: #ffffff; background-color: #ff9900; } #navi ul li.navi_menu ul { display: none; } #navi ul li.navi_menu_on ul { display: block; } #navi li.navi_menu{ border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; } #navi li.navi_menu_on{ border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; }button { background-image: url(%E3%83%94%E3%82%AF%E3%83%81%E3%83%A3%201.jpg); }

  • IEでリストが横に並ばない

    http://www.1uphp.com/con2/over/over2.html のサイトを参考にリストを横に並べようとしてます。 Firefoxではちゃんと表示されるのですがIEでは縦になってしまいます。Float:left;をdisplay:inline;に変えてみても結果は同じでした。 また何故かマウスのロールオーバーした時にリンクを「白」に設定してあるのですがこれも1部分以外反映されません。 どなかた解決策が分かる方いましたらお手数ですがよろしくお願い致します。 ul{ width:540px; height:35px; list-style:none; text-align:center; font-size:145%; font-weight:bold; line-height:100%; } li{ font-size: 0.8em; color: #333333; float:left; } a{display:block; width:100%; height:100%; background-image:url(); background-position:0px 0px; background-repeat:no-repeat; color:#ffffff; text-decoration:none; } a:link{ color: #3333ff; } a:hover{ background-image:url(); background-position:0px -35px; color:#ffffff; } a:visited{ color: #333333; }

    • ベストアンサー
    • HTML