• ベストアンサー

IE6と7で1ピクセル分、背景画像がずれます

IE6、7で背景画像が横(右)に1ピクセルずれてしまいます。 ブラウザのお気に入りなどの欄を表示する(固定表示)とキッチリ表示されます。 ソースは以下の通りで、特別なことはしていませんが、これはIEのバグなのでしょうか? 他のブラウザはMacも含め問題ありません。 よろしくお願いします。 background: #FFFFFF url(images/bg.jpg) no-repeat fixed center top;

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

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

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

こんにちは。 IE6の有名なバグです。 background: #FFFFFF url(images/bg.jpg) no-repeat fixed center top; を、仮にbodyに適用したとすると、 body { background: #FFFFFF url(images/hoge.jpg) center hoge hoge; padding-left: 1px; } と、強引に反対側に1ピクセルずらしてやればOKなのですが、 当然のごとくIE以外のブラウザでは逆に左に1ピクセルずれてしまいます。 そこで、スマートなやり方ではないのですが、ハックを利用します。 このバグは仰るとおりIE7でも生じるので、 body { background: #FFFFFF url(images/hoge.jpg) center hoge hoge; } /* ↓IE6以下に適用 */ * html body { padding-left: 1px; } /* ↓IE7に適用 */ *+html body { padding-left: 1px; } ハックの使用は出来る限り避けたいのですが。。 たかが1ピクセル、されど1ピクセルですよね(笑

参考URL:
http://www.lucky-bag.com/archives/2006/06/css-hacks.html
okok777
質問者

お礼

かな~り遅くなりましたが・・・ お返事ありがとうございました。

その他の回答 (1)

  • shizuku
  • ベストアンサー率33% (25/74)
回答No.1

ブラウザにスクロールバーがつかない場合だとずれた記憶があったような。 仮に、 左から余白10px、赤ベタ300px、余白10pxの背景画像(合計320px)をセンタリングする場合は 赤ベタ部分を右に1px増やして301pxの幅に、一番右の余白を1px増やして11pxに。(合計321pxの画像) 私はこんな感じで対処したような・・・。 あやふやな記憶ですし、どのようなページ構成/背景画像を利用されるのか、わからないので、時間があったら参考にやってみてください。 ダメだったらごめんなさい。

参考URL:
http://norisfactory.com/stylesheetlab/000010.php
okok777
質問者

お礼

お返事ありがとうございます。 CSSハック(*:first-child+html)でmargin-left: 1px;を指定して、 とりあえず、正常表示されるようになりました。 ※でも、お気に入り表示・非表示・幅拡大などをすると不安定なようです。 参考URLの方も参考にしてみます。 とりあえず、ありがとうございました。

関連するQ&A

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

    • ベストアンサー
    • 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の上には文字を重ねたいと考えているのですが、そのようにタグを編集してもうまく表示できません。 ご回答よろしくお願いいたします。

  • IE7で閲覧した際にCSSで配置した背景画像がずれる

    スタイルシートにて、 以下のように設定して背景画像を表示させているのですが、 body { font-size: 70%; line-height: 140%; word-spacing: 1pt; margin: 0; padding: 0; text-decoration: none; text-align: center; letter-spacing: 0.1em; background-image: url(../images/body_bg.gif); background-color: #FFFFFF; background-repeat: repeat-y; background-position: center top; } マックのsafari、firefox、WINのIE6、firefox等では問題なく センターに背景画像が配置されて表示されるのですが、 IE7で表示すると、横に余分な空白が生じて、 背景画像のみが左のほうにずれてしまいます。 おおよそですが、bodyの横幅が右に2倍に 増えている感じで、スクロールバーを右に動かすと、 意味のない空白ができています。 IE7のハックというものを使用して、上記のbodyタグの下に 背景画像の設定を外した、下記の記述を追記し、 さらに、.bodybgというクラスタグで 背景画像を設定してみたのですが、結果は同じでした。 *:first-child+html body { font-size: 70%; line-height: 140%; word-spacing: 1pt; margin: 0; padding: 0; text-decoration: none; text-align: center; letter-spacing: 0.1em; background-color: #FFFFFF; } *:first-child+html .bodybg { background-image: url(../images/body_bg.gif); background-repeat: repeat-y; background-position: center top; } どうしたら、背景画像のずれが直るのでしょうか? また、このバグはbodyタグではなく、その他のスタイルが 影響しているのでしょうか? どなたかご存知の方お教え願えませんでしょうか。 よろしくお願い致します。

  • firefoxでcssを使った時背景画像が表示されない

    CSSでfloatを設定し、その中のそれぞれに背景画像を表示しようとすると、上手くいきません。 背景画像も背景色も表示されません。 構文に間違いがあるのでしょうか? それともそのような仕様なのでしょうか? よろしくお願いいたします。 ###CSS### #container { width: 900px; background-image: url(images/back.jpg); background-repeat: no-repeat; } #header { width: 900px; } #contents { width: 748px; background-color: #FFFFFF; background-image: url(images/image.jpg); background-repeat: no-repeat; background-position: top; padding: 0px; margin-left: 76px; } #footer { clear: both; width: 748px; margin-left: 76px; } #sidebar { float: left; background-image: url(images/side.jpg); width: 180px; margin-top: 14px; background-color: #FFFFFF; } #main { float: right; width: 568px; padding: 0px; background-color: #FFFFFF; background-image: url(../images/image2.jpg);

  • 背景画像を二つ指定

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

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

  • IE9のみ、背景が縦に2回表示される

    質問よろしくお願い致します。 タイトル通り、IE9でのみ、背景画像が縦に2回連続して表示されてしまいます。 Macの全てのブラウザ、Win Chrome、Safari、Firefox、IE6~8では問題なくきちんと表示されます。 IE9だけなんです。。。 CSSは一部分、直接HTMLに記載していますが、外部CSS(commonで使用している方など)に書いても同じでした。 ソースは下記になります。 ======================================= <div class="w1000 box_shadow" style="height:645px;background:url(images/bg1.jpg) left top no-repeat;"> <div class="w960"> <h3><img src="images/ttl1.png" width="800" height="500" alt="title1" class="p-top25" /><h3> <p class="m-top30"> キャプションキャプションキャプション<br /> キャプションキャプションキャプションキャプションキャプションキャプションキャプション <p> </div> </div> <div class="w1000 box_shadow" style="height:300px;background:url(images/bg2.jpg) left top no-repeat;"> <div class="w960"> <h3><img src="images/ttl2.png" width="800" height="300" alt="title1" class="p-top25" /><h3> <p class="m-top30"> キャプションキャプションキャプション<br /> キャプションキャプションキャプションキャプションキャプションキャプションキャプション <p> </div> </div> ======================================= 2つ縦にブロックをおいていますが、1つだけだときちんと表示されます。 背景画像と内包内容違いで複数おくと、この現象がおきます。 position:relativeやzoom:1も試してみましたがダメでした。 具体的な表示内容は、下記のようになります。(わかりずらいの画像も添付します) ================= 高さ645pxでbg1.jpg背景が表示:内容カラ ーーーーーーーーーーーーーーーーー 高さ645pxでbg1.jpg背景が再度表示:タイトル画像やキャプションが入る ================= ================= 高さ300pxでbg2.jpg背景が表示:内容カラ ーーーーーーーーーーーーーーーーー 高さ300pxでbg2.jpg背景が再度表示:タイトル画像やキャプションが入る ================= 原因や改善策などありますでしょうか? どうぞ宜しくお願い致します。

    • 締切済み
    • CSS
  • 上部と下部にx-repeat∞の背景画像を置きたい

    html { background-image: url(../images/design_02.jpg); background-repeat: repeat-x; background-position: top; } body { font-family: sans-serif; color: #333333; background-color: #ffffff; background-image: url(../images/design_47.jpg); background-repeat: repeat-x; background-position: bottom; } でcssを組んでいます。 画面一杯に、ヘッダーを含めた上部、フッターを含めた下部にグラデ背景を乗せたデザインにしたいのですが、上記cssでは緩衝しあうのか、bodyで置いた画像しか表示されません。 このようなデザインにしたい場合、どのようなcssにすれば良いのでしょうか。

    • ベストアンサー
    • CSS
  • IE以外のブラウザで、背景を固定させる方法

    まったく同じタイトルで、質問されているカタがいらっしゃいましたが、回答を読んでも分からなかったので質問させていただきます。 MS FrontPage 2000でHPを作ったのですが、IEではうまく背景固定がされるのですが、Firefoxでは、背景固定ができず、スクロールすると背景が動きます。 HTMLの部分を見ると、 <body bgcolor="#FFFFFF" text="#000000" background="bear.jpg" bgproperties="fixed" background-attachment:fixed > と言う記述があり、この部分がカギになっているようなのですが、どう変えれば、IEでもFirefoxでも固定されて表示されるのか分かりません。お教えいただけないでしょうか?

専門家に質問してみよう