• ベストアンサー

背景画像を二つ指定

こんにちは。 全体の背景画像(斜めストライプの柄)と、 コンテンツ部分に背景画像(白で両サイドに線)を別々に指定したいのですが、 IEではうまく表示されましたがNetScape、Firefoxでは真ん中の画像が表示されません。。 URLはこちら http://ic.web6.jp/portfolio/rigtig.html 全体の背景はbodyに、 コンテンツにはdiv要素にrepeat-yで背景をそれぞれ指定しました。 どうすればIE以外でもうまく表示されるでしょうか? 背景を指定しているCSSはこちら body { width : 762px; margin : 0 auto; background-image : url("images/top_bg.gif"); line-height:1.4; font-size:10pt; } div#wrap{ width : 762px; background-image : url("images/body_bg2.gif"); background-repeat: repeat-y; }

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

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

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

div#wrap{ width : 762px; background-image : url("images/body_bg2.gif"); background-repeat: repeat-y; overflow:auto; } http://gyauza.egoism.jp/clip/archives/2007/06/070602-overflow-hidden-clear/

sister69
質問者

お礼

できました!!! あんなに悩んでいたのに・・・ まだよく理解してないのですが、これから勉強します。 本当に助かりました。ありがとうございました!

その他の回答 (3)

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

> もし今も崩れているようでしたら原因を考えたいので、 確認しましたが、現在は支障なく表示(IE6.0/7.0、Firefox2.0~、Opera9.25)されている様です。無事問題が解決したのですね、良かったです。 ということですので、 > 確かにこのままでは恥ずかしいので消しておきます。 今の状態なら、別に恥ずかしいことはないかと思いますのでご自由になさって下さい。 ※蛇足ですが、「EVENT」のところの、「【North Textile】3/19 13:00~」というテキストが(環境を問わず)ボックスの枠線までぴったりくっついている様ですが、余白を持たせてあげればなお見栄えも良いのではないかと思いました。 ちなみに、 > #leftでfloat:leftにしていて、 > #rightでfloat:rightをやるのはおかしいと思うのですが、 おかしいでしょうか?この手のレイアウトならどちらのブロックもfloat:leftにする事も可能だと思いますが(実際に質問者様のコンテンツでの検証はしていないので断言はしません)あるコンテナブロックは左に浮き/あるコンテナブロックは右に浮く、という構成自体は別に有り得ない事ではないと思います。

sister69
質問者

お礼

お礼が遅くなって申し訳ありませんでした。とても勉強になりました。ありがとうございます。

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

> NetScape、Firefoxでは真ん中の画像が表示されません。。 背景画像表示されない、というよりはdiv#rightboxのコンテナブロック全体がdiv#leftに重なってしまってすし、div#rightbox1はすとーんとフッターの下に落っこちてしまっている、という壊滅的なレイアウト崩れが起きている状態ですが…? ANo.2の回答者様の仰るアドバイスに従われるのが賢明でしょう。現在の状態で、W3CのCSS Validatorのボタンを置いて更にはaltで「正当なCSSです!」と堂々と宣言されているのは、ちょっとどうかと…

sister69
質問者

お礼

アドバイスありがとうございます。 div#rightboxですが、NetScape、Firefoxと、IE6、IE7で確認しているのですが、先ほどもいろいろいじっていてそのような状態になったので、もしかしたらその途中にご覧になったのかもしれません。 もし今も崩れているようでしたら原因を考えたいので、 よろしければブラウザを教えていただけますでしょうか? W3Cのボタンは間違ったタグがないか確認ながら作業したくて置いたもので、altはコピペの中に元々あったものなのですが、確かにこのままでは恥ずかしいので消しておきます。

回答No.2

見ましたが、何もかもが無意味にfloatしているので、wrapもboxも高さが 0です。IEで背景が表示されるのは高さの計算を間違える有名なバグなので 背景を表示しないすべてのブラウザの動作が正しいです。 適切にclearしてfloatを解除するようにしてください。たとえばfooterは maincontentsの外にあってfloatしていないのが適正だし、topimgが floatしているのも変です。それぞれfloatをヤメ、直前でclearしてみて ください。wrapとboxの二重構造も意味不明ですが。 overflow属性明記で逃げてたら、マトモに書けるようにはなりません。 構造と意味を考えて論理的にかける頭脳を養ってください。

sister69
質問者

お礼

アドバイスありがとうございます! すごく参考になりました。 よく理解していないまま無駄に使っていたいろんな部分のfloatを直してみました。 maincontentsもfooterにかぶっていたので、直しました。 ただ、maincontentsのレイアウトがまだおかしいと思うので、 もしまた見ましたらアドバイス頂けると嬉しいです。 maincontentsで囲った中にleftとrightをおきたいのですが、やはりIE以外でのfloatがうまくできません。 今のCSSはこうなっています。 div#left{ width : 160px; float : left; } div#right{ width : 540px; float: right; } ↑ #leftでfloat:leftにしていて、 #rightでfloat:rightをやるのはおかしいと思うのですが、 IE以外だと全体の真ん中の位置に#rightが表示されてしまうのです。 それぞれmaincontentsで囲っているので、#leftの続く要素として#rightが置かれているはずなのですが、、 きっと私の理解がどこかで間違っているのだと思います。 きちんと理解して正しいソースを書きたいので、アドバイスありましたらぜひお願い致します。

関連するQ&A

  • ディスプレイサイズにあわせた背景画像

    html、cssは独学、javaはネットに上がっているものを活用させていただく程度の質問者です。 メインコンテンツ<wrapper>と<body>にかけて右角にラインの画像を斜めに貼り付けたサイトを作成しようと思っています。 今のところ下記のように書いているのですが、これだとlineのwidth=300pxのせいで、ブラウザに横スクロールが出来てしまいます。この横スクロールが出ないように設定したいのです。 例えば、ディスプレイのサイズを取得してlineのwidthを調整するとかlineを斜めにリピートするとか。 なにかよい方法がありましたら、お教え下さい。よろしくお願い致します。 *****html部分************************************ <body> <div id="wrapper"> <div id="header"> <div class="line"></div> </div> </body> ************************************************ *****css部分************************************ body{ width:auto; margin:0; padding:0; background:url(../images/body_bg.jpg) repeat; } div#wrapper{ width:850px; margin:0 auto; padding:0; background:url(../images/wrapper_bg.gif) repeat-y; } div#header{ width:850px; height:210px; margin:0 auto; background:url(../images/header_bg.gif) no-repeat;//ライン画像の一部 position:relative; } div#header div.line{ width:300px; height:200px; background:url(../images/line.jpg) repeat-x;//ライン画像 position:absolute; left:850px; top:0; } ************************************************

  • ディスプレイのサイズに合わせた背景画像

    html、cssは独学、javaはネットに上がっているものを活用させていただく程度の質問者です。 メインコンテンツ<wrapper>と<body>にかけて右角にラインの画像を斜めに貼り付けたサイトを作成しようと思っています。 今のところ下記のように書いているのですが、これだとlineのwidth=300pxのせいで、ブラウザに横スクロールが出来てしまいます。この横スクロールが出ないように設定したいのです。 例えば、ディスプレイのサイズを取得してlineのwidthをちょうせいする。とかlineを斜めにリピートするとか。 なにかよい方法がありましたら、お教え下さい。よろしくお願い致します。 *****html部分************************************ <body> <div id="wrapper"> <div id="header"> <div class="line"></div> </div> </body> ************************************************ *****css部分************************************ body{ width:auto; margin:0; padding:0; background:url(../images/body_bg.jpg) repeat; } div#wrapper{ width:850px; margin:0 auto; padding:0; background:url(../images/wrapper_bg.gif) repeat-y; } div#header{ width:850px; height:210px; margin:0 auto; background:url(../images/header_bg.gif) no-repeat; position:relative; } div#header div.line{ width:300px; height:200px; background:url(../images/line.jpg) repeat-x; position:absolute; left:850px; top:0; } ************************************************

    • 締切済み
    • CSS
  • 複数指定の背景が表示されない

    困っているのでどなたかお力添えをお願いします。 htmlとbodyにそれぞれ別の背景画像を指定しているのですが、 IE6でのみ片方の背景が表示されません。 html { background: url(../images/bg.jpg) repeat center bottom; } body { background: url(../images/header-bg.jpg) repeat-x center top; } どうすれば表示されるようになるでしょうか? divを使う背景画像の複数指定が上手くいかなかったのでこのやり方をしています。

    • ベストアンサー
    • HTML
  • firefoxで見るとdiv背景画像がスクロールで消えてしまいます

    http://www.geocities.jp/testac2007/ bodyに「top_bg.gif」という背景画像指定をした上で更にdivを重ね、そのdiv内に「side_860.gif」という背景画像を指定しています。 ieだと意図した通りに表示されるのですが、 FirefoxやNetscapeで確認すると、表示されているページより下部のスクロール以下の背景画像が表示されません。 何とか同症状についてネットで検索し試行錯誤してみたのですが、解決に至りませんでしたのでこちらでヘルプさせていただきました。皆さんのお知恵を拝借いただきたいです。 ■■■HTMLの概要■■■ <body> <div id="side_bg"> <div id="outline"> <div id="A01">○○○</div> <div id="A02"> <div class="A02_left">○○○</div> <div class="A02_right">○○○</div> <br class="c-both"> </div> <div id="B01">○○○</div> </div> </div> </body> ■■■CSSの概要■■■ body { margin:0px auto; background-image:url(images/top_bg.gif); } #side_bg { width:860px; height:100%; margin:0 auto; background:#ffffff url(images/side_860.gif); overflow:visible; } #outline { width:830px; margin:0 auto; background-color:#FFFFFF; } .c-both { clear:both;} #A01{ width:830px; margin:15px 0px 4px 0px; overflow: auto; } #A02{ width:830px; margin:0px 0px 4px 0px; overflow: auto; } .A02_left{ width:304px; float:left; } .A02_right{ width:526px; float:right; margin-top:4px; } #B01{ width:730px; margin:20px 50px; }

    • ベストアンサー
    • CSS
  • WEBページの背景に画像を連続配置する方法

    WEBページの背景に画像を配置したいと考えています。 bodyの途中から画像を連続で配置したいのですが、 以下のようにCSSで指定しても左上から連続で画像が配置されてしまいます。 ※上から175pxのところから連続で画像を出したいです。 background: transparent url(../images/bg.gif) repeat 0px 175px; background-positionを指定する場合、 background-repeatはno-repeatじゃないとダメなのでしょうか? 現状、bg.gif自体を画像を連続して配置したような 大きい画像にしてno-repeatで設置しています。 背景の途中から同じ画像を連続配置する方法を 教えていただければ幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • 背景画像の指定方法

    少し調べたのですが、さっぱり原因が分からない為質問させていただきます。 外部CSSで背景画像を指定しているのですが、WinXP IE7で作製した所うまくいったのですが、別のマシン(WinXP IE6)で見ると表示の仕方が変わってきます。 参考ソース▼ 【外部CSS】----- .bg { width:300px; background-image:url(bg.png); background-repeat:no-repeat; background-attachment:fixed; background-position: bottom;} 【HTML】----- <div class="bg">長い本文</div> IE7だと、開いているウィンドウサイズに合わせて、見ている画面範囲の下部に背景画像が来るのですが、IE6の方だと、長い本文をスクロールしていった最後に、背景画像が表示される状態です。 分かりにくい説明かもしれませんが、アドバイスよろしくお願い致します。

  • Firefox2.0で背景が上段に集まってしまいます。

    以下のCSS、HTMLでdiv要素を分けて3つの細いgif画像を見た目は一つの背景になるように指定しているつもりです。真ん中のdiv要素をy方向にリピートさせて記事が長くなっても背景が崩れないページを作りたいと思っております。 IE7.0では問題なく表示してくれるのですがFirefox2.0になると背景が上段に集まってしまいます。 すみませんが改善方法をアドバイスよろしくお願い致します。 【CSS】 body { font-family: "MS Pゴシック"; margin: 0px; padding: 0px; text-align: center; background: #E8FFFF fixed; } #wrapper { text-align: left; margin: 0px auto; padding: 0px 0px 0px 20px; height: auto; width: 900px; background: url(background_3.gif) repeat-y; } #head-background { margin: 0px auto; height: 17px; width: 900px; background: url(background_7.gif) no-repeat; padding: 0px; } #header { margin: 0px; padding: 0px; height: 20px; width: 800px; } #footer {     clear: both width: 900px;     background: url(background_6.gif) no-repeat; margin: 0px auto; padding: 0px; } 【HTML】 <body> <div id="head-background"> </div> <div id="wrapper"> <div id="header"> ・・・・・(ロールオーバーリンク) </div> <div id="header"> ・・・・・(MPEG画像) </div> </div> </div> <div id="footer"> </div> </BODY> </HTML>

    • 締切済み
    • CSS
  • ボックスに背景を指定した時、firefoxでうまく表示されない

    CSS初心者です。 タイトルの通りなんですが、ボックスにbackground-imageで背景を指定して、ブラウザで表示させると、IE6.0だとちゃんと表示されますが、firefoxだと表示されません。 サンプルソースを書きます。 -HTML- <div id="formbox"> <div id="box01">テストテスト</div> </div> -CSS- #formbox{ background-image: url(./img/bg.gif); background-repeat: no-repeat; width:750px; height:155px; } #box01{ margin-left:30px; width:280px; height:50px; background-color:skyblue; float:left; } どなたかご教授お願いできませんでしょうか。 よろしくお願いいたします。

    • ベストアンサー
    • CSS
  • ホームページの背景画像が途切れてしまう。

    こんにちは。 現在、ホームページを作っているのですが、背景画像で困ってしまって質問しました。 ホームページはhtmlとCSSを使って、ホームページビルダーで作っています。 bodyに背景画像1を設定しています。 ホームページの内容は <div></div>の中にinnerというclassを作って スタイルシートで40px×40pxの背景画像2を「repeat」指定しています。 この背景画像2が、IEでは表示されているのですが、firefoxやchromeだと下のほうで 途切れてしまいます。 それも、ちゃんと表示できてるページと、途切れてしまうページの2種類があります。 原因を自分でも探してみたのですが、見つかりませんでした。 もし、知っている、気付いた方がいらっしゃったら教えていただけませんか?? よろしくお願いします。 ちなみに、下記はスタイルシートに記載しているものです。 --------------------------------------------------------------------- body{ text-align:center; margin-right : auto;margin-left : auto; background-image : url(mokuteki/taiiku/bg_brown.png); background-repeat: repeat; font-size : 90%; padding-top : 0px; padding-bottom : 0px; margin-top : 0px; margin-bottom : 0px; } #wrap{ text-align : center; margin-top : 0px; margin-left : auto; margin-right : auto; margin-bottom : auto; width : 100%; padding-top : 0px; } .inner{ text-align : left; margin-top : 0px; margin-left : auto; margin-right : auto; width : 900px; background-image : url(images/bg_white.png); background-repeat : repeat; } -----------------------------------------------------------------

  • 背景画像

    背景画像のCSSを教えてください wordpressのfooterのように、footer内のみに縦100px横幅1pxの画像で敷き詰めたいです 実際に横960pxに敷き詰められるようにしたいです #footer_in { position:relative; margin:0 auto; padding:0; width:960px; height:100px; background:url(../images/footer_bg.png) no-repeat center 13px; font-size:12px; } <div id="footer_in"> </div>

    • ベストアンサー
    • CSS