• 締切済み

背景画像の指定方法

少し調べたのですが、さっぱり原因が分からない為質問させていただきます。 外部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の方だと、長い本文をスクロールしていった最後に、背景画像が表示される状態です。 分かりにくい説明かもしれませんが、アドバイスよろしくお願い致します。

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

みんなの回答

noname#66720
noname#66720
回答No.3

ただ画面の下のほうに固定したいだけなら html { background:url(bg.png) no-repeat fixed bottom; } でいいんじゃないでしょうか?divも必要ありません。 ただ、IEhは6以上じゃないとhtmlに対してbackgroundの指定は無効なようなので、5.xは切り捨てることになりますが。

vescent
質問者

お礼

今回の場合、説明が足りなくて申し訳ないのですが、bodyで既に背景画像使用しているんです。 なので、DIVじゃなくてTable背景でも良かったのですが、どちらにせよIE6では難しいようでした。 回答ありがとうございました。

  • goulan
  • ベストアンサー率46% (23/50)
回答No.2

No.1です。捕捉。 以前使っていた方法があります。お試しください。ただ、どのブラウザでも同じようにレンダリングされるとは限りません。 .bg{ background-image: url(bg.png); background-repeat: no-repeat; background-attachment: fixed; background-position: 0% 100%; } <div class="bg"> <div style=" height: ***px; overflow: auto;"> 長い本文 </div> </div> height を指定(もちろん画像のサイズ(height)よりも高くしないと、文章の下部にfixed の表示は無理です)、iframeのように見せかけます。長い本文はそのheightにはいりきりませんので、overflow を指定します。auto ではなく、scrollでも良いです。その場合と、width を指定する場合は、横スクロールも出たりします。表示させたい幅に調整してください。

vescent
質問者

お礼

参考に、試してみました。なるほど、iframeのようになるのですね・・・今回はデザイン的に崩れるので見送りますが、今後の参考にさせていただきます。 javascriptにての方法、探してみましたがいまいちよく分かりませんでした。ですが、IE6のバグだという事が分かっただけで良かったです。 IE7のユーザーも徐々に増えてきている事かと思うので、IE6のユーザーが一番多いのは分かっていますが、とりあえず目を瞑ってしまおうかと思います^^; この度はアドバイスありがとうございました。

  • goulan
  • ベストアンサー率46% (23/50)
回答No.1

ソースで見る限り、それはIE6のバグです。 IE6(5, 5.5も。)は、 body, html 以外の要素に background-attachment: fixed; を指定すると、その要素に対して固定されてしまい、思ったとおりの表示をすることが出来ません。 どうしてもというならば、javascriptの力を借りて下さい。背景画像を表示させるscriptをnet上で見掛けた記憶があります。多分まだあるでしょう。

vescent
質問者

お礼

少し試すのに時間がかかりそうなので、取り急ぎお礼だけ述べさせて頂きます。回答ありがとうございました!

関連するQ&A

  • 背景画像を二つ指定

    こんにちは。 全体の背景画像(斜めストライプの柄)と、 コンテンツ部分に背景画像(白で両サイドに線)を別々に指定したいのですが、 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
  • 複数指定の背景が表示されない

    困っているのでどなたかお力添えをお願いします。 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で背景画像が表示されず困っています

    サイトを作り確認してみたところ、 IEでは背景画像がきちんと表示されるのですが Firefoxでは表示されないようです。 下記のように入力しているのですが、何が原因なのかわかりません…。 詳しい方、教えていただけないでしょうか。 <!-- BODY {      background-image: url(http://aaaaa.jpg); background-color: #ffffff; background-repeat: no-repeat; background-position: center bottom; background-attachment: fixed; } -->

    • ベストアンサー
    • HTML
  • HTMLでの背景画像設定について

    はじめまして。 HP作成初心者なのですが、いろいろとネットで調べながら作成しています。 フレームを使っていて、メニュー画面側のほうに画像をふたつ使いたいと考えています。 それぞれ左上と左下とで固定する画像なのですが、それがどうしてもふたつ同時に表示できません。 <style type="text/css"> <!-- BODY {background-image : url("bg2.jpg");background-position: 100 0%; background-repeat: no-repeat;background-attachment: fixed;} --> </style> <style type="text/css"> <!--BODY {background-image : url("bg.jpg");background-position: 0 100%; background-repeat: no-repeat;background-attachment: fixed;} --> </style> という感じに記述しているのですが、こうすると、下にあるbg.jpgのみが反映されてしまって、bg2.jpgは反映されません。 また、bg2.jpgの上には文字を重ねたいと考えているのですが、そのようにタグを編集してもうまく表示できません。 ご回答よろしくお願いいたします。

  • 背景イメージの重ね表示

    こんにちは。 MTを使ってテンプレートを作っているのですが、サイドバー全体の背景の上に、別な背景を表示させようとしています。 例えば以下のようなかんじです。 <style type="text/css"> .bg {  background-position: left;  background-repeat: repeat-y;  background: url("./img/bg.gif"); } .fg {  padding-bottom: 100px;  background-position: bottom;  background-repeat: no-repeat;  background-image: url("./img/fg.gif"); } </style>       :       : <!-- ▼サイドバー▼ --> <div class="bg">   <div class="fg">       :       :   </div> </div> <!-- ▲サイドバー▲ --> IE だと全体の背景が前面にでてしまい、ホントは前面に表示されて欲しい別な背景が消されてしまい困っています。※Firefox などでは問題ない。 サイドバー全体の背景の上に別な背景を表示させたい場合には、どのようにすればいいのか教えください。 よろしくお願いします。

  • 時間帯によって背景画像を変える

    タイトル通りなのですが、なかなかうまくいきません・・・。 <BODY style="background-image:url(test.gif);background-repeat:no-repeat; background-attachment:fixed;background-position:bottom right;"> スタイルを使って右下に背景画像を表示しています。このtest.gifを時間帯によって変えたいです。 自分なりにこのようにしてheadタグの中に埋め込みましたがうまくいきません。 <SCRIPT LANGUAGE="JavaScript"> <!--- function geth(t){ if (t<=5) document.write("<BODY style='background-image:url(test1.gif);background-repeat:no-repeat; background-attachment:fixed;background-position:bottom right;'>"); else { if (t<=11) document.write("<BODY style='background-image:url(test2.gif);background-repeat:no-repeat; background-attachment:fixed;background-position:bottom right;'>"); else { if (t<=17) document.write("<BODY style='background-image:url(test3.gif);background-repeat:no-repeat; background-attachment:fixed;background-position:bottom right;'>"); else { if (t<=23) document.write("<BODY style='background-image:url(test4.gif);background-repeat:no-repeat; background-attachment:fixed;background-position:bottom right;'>"); }}} } //---> </SCRIPT> <SCRIPT LANGUAGE="JavaScript"> <!--- h = new Date(); geth(h.getHours()); //---> </SCRIPT> <BODY BACKGROUND='test.gif'>という普通の背景の表示の仕方ならうまくできました。スタイルはheadの中では使えないのでしょうか・・・?どのようにすればうまくいくでしょうか?JavaScriptに関してはほとんど無知ですがよろしくおねがいします。 ※意味不明なことを言っていたらすみません。

  • 2つ画像を背景にするスタイルシートってある?

    1つの画像をスタイルシートで背景にするのは、知ってるんですが、2つの画像を同じページに背景にはできるのでしょうか?下記は1つの画像を背景にするスタイルシートです。これのどこかをいじれば可能なのでしょうか? <STYLE TYPE="text/css"> <!--    BODY {       background-image:素材のURL;       background-position:0% 100%;       background-repeat:no-repeat;       background-attachment:fixed;     } --> </STYLE>

    • 締切済み
    • CSS
  • 背景画像を反転させる方法

    背景画像を反転させる方法 いつもお世話になっています。 今、趣味のサイトの再構築に伴い、ネットや本を見ながらHTMLとCSSについて勉強中です。 そこでcssの記述について教えて頂きたいのです。 背景の画像を右下に固定する場合、cssの記述は、 body{ background-image:url("×××.gif"); background-repeat:no-repeat; background-attachment:fixed; background-position:right bottom; } としますよね? 後、cssで画像を左右反転させる場合は、classでfilter: fliph()を使えばいいとわかりました。 ではこの反転させた画像を背景に使いたい場合、どうすればいいのでしょう? そもそもそのようなことが可能なのでしょうか? もし可能でしたら具体的にどのような記述をすればいいのか教えて頂きたいのです。 それとfilterはIE独特の要素と聞いていますが、filter: fliphもそうなのでしょうか? しかしながらfilter: alphaに関しては filter: alpha(opacity=70); -moz-opacity: 0.7; opacity: 0.7; と記述すればFirefoxなどでも透明効果が出るようです。 filter: fliphもIE独特の要素ならばfilter: alphaのように他のブラウザでも対応させる方法があるのでしょうか? 長々と書いてしまいましたが、知りたいことを要約すると 1.cssで画像を反転させ、それを背景画像に使うことは可能か否か   可能ならばどう記述すればよいのか 2.filter: fliphで画像を反転させた場合、IE以外でのブラウザで反映されるか否か   また反映されないのなら、対応させる方法はあるのかどうか と言うことです。 1と2、分かる方だけでも結構ですのでよろしくお願いします。

    • ベストアンサー
    • HTML
  • CSSで背景を多重化する方法

    CSSでdivの中の背景を多重化したいと思いまして、 なんとかお知恵を拝借できればと思い投稿させていただきました。 やりたいことは、添付の画像のように、テキストの量によって背景の●がちゃんと下に動いて欲しいのです。 こんな感じでできるかなと思って試行錯誤していましたが、ぜんぜんできませんでした。 【html】 <div class="parent"> <div class="bg_upper"> <div class="bg_lower"> <div class="content"> テキスト・・・ </div> </div> </div> </div> 【CSS】 div.parent { position:relative; } div.bg_upper { position:absolute; top:0; left:0; background:url(../images/bg_tl.png) left top no-repeat; } div.bg_lower { position:absolute; bottom:0; right:0; background:url(../images/bg_br.png) right bottom no-repeat; } <div class="content">に対して、height:100pxのように明示的に高さを指定してやるとそれらしくは なったのですが、高さは可変なので使えませんでした。 なんとかヒントいただけましたら助かります。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 背景画像を2枚使いうまく繰り返す方法

    htmlとcssでホームページを作っています。 背景画像を2枚使用しているんですが、どうしてもうまく表示されません。 1枚目はページ上部に。 2枚目はその下からすべて。 で、それぞれ横にリピート。 2枚目だけ縦にリピートして表示させようとしてます。 最初はbodyとdivで -------------------css-------------------------- body { background-image:url(""); background-repeat:repeat; } div.body { background-image:url(""); } ----------------html-------- <body> <div class="body"> 内容 </div> </body> --------------------------------------------- としています。 ですが、これだとdivのボックスができてしまい、横に無限に繰り返されないことになります。画面を縮小した時に切れてしまいます。 なので、htmlとbodyにそれぞれ背景をつけたんですが、 今度は両方の画像が表示されませんでした。 html { background-image:url(""); background-repeat:repeat-x; } body { background-image:url(""); } htmlのほうを消すと、bodyで指定した画像が縦横無限に繰り返されます。 htmlを消さずにbodyを無限に表示されるにはどうしたらいいですか?

    • ベストアンサー
    • HTML

専門家に質問してみよう