IE6ブラウザへの対応で行き詰ってしまったので、ご意見をお聞かせください。
以下htmlの一部
<html>
<head>
<title></title>
</head>
<body>
<div id="hoge">
中央に表示されます。
</div>
</body>
以下スタイルシートの一部
body {
background:url("./background1.gif") no-repeat scroll left top;
}
#hoge {
background:url("./background2.gif") no-repeat scroll left top;
margin-left:auto;
margin-right:auto;
}
<body>と<div>にそれぞれ、絵柄は同じだけど色が違う背景画像を設定しています。
目的は、ブラウザの横幅を広げた時に背景がずれないようにするためです。
FireFox3.6、IE7、IE8、GoogleChlomeでは目的の動きを取ることを確認できたのですが、IE6ではそうなりません。
IE6では、<div>に設定した背景画像の開始位置が、<div>の範囲(開始位置)になっているのです。
<body>のように、ブラウザの開始位置に配置したいときはどのようにしたらいいのでしょうか?
cssハックを使って、IE6だけpositionでずらすという方法も試したのですが、
それだと背景にずれが生じてしまうため、あきらめました。
他にも何か良い方法がありましたら、お聞かせいただけると助かります。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
bodyにはmarginが最初から設定されているから、ブラウザによって勝手に余白が入ってずれることがあります。
cssに margin:0 auto を足してbackground-positionを同じにしてちょっと書き換えれば解決するはずです。
background-position: center top; も入れたほうが良いかも。
ただし、bodyとdivは共にブラウザでセンタリング表示であると仮定した場合です。
(cssここから)
body {
background:url("./background1.gif");
background-position: center top;
margin:0 auto;
text-align:center;
}
#hoge {
background:url("./background2.gif");
background-position: center top;
margin:0 auto;
text-align:center;
width:300px; /* たとえば */
}
(cssここまで)
※margin:0 auto; という表記は、
margin-left:auto;
margin-right:auto;
margin-top: 0;
margin-bottom:0;
を1行で書いたものです
この回答への補足
ご回答ありがとうございます。
教えていただいた内容を使い、さらには背景をセンター表示にさせるために少し調整したら、
ブラウザの横幅を広げた時に期待する動作を得ることができました!!
ただ、一つ困ったことがあるのですが、画面に合わせてdivに設定した背景が縦位置のスクロールをしてしまうのです。
IE7、8、FireFox3.6、GoogleChlomeでは動かないのですが。。。
先の例には記述していないのですが、
background-attachment: fixed;
の指定は行っています。
何が問題なのでしょうか…?
No.2
- 回答日時:
サイドの背景を暗い画像に。
昨日の続きですが・・・----------------
IE6で崩れるって事は、DTDスイッチで過去モードの可能性あり・・・
更に、記述された、CSSだけで、センター配置すらならないし、
Firefox、IE、Chromeでもズレるはず。(CSS部分を省略したのだろうか?)
仮に、widthで幅を設定し、
センター配置にしてbody以下のpadding,marginを0にしたとしても、
backgroundでscroll left topなのだから、
ブラウザ幅を変更したら画像がズレるはず。
left topだから、背景はdivの開始位置から始まるのがルール。
だからdivが動けば画像も一緒にズレる。
-----------------------
他にも方法があるが、
一番簡単な方法は、背景画像とdiv画像をセンター配置に統一すれば画像が一緒に移動。
body { margin:0;padding:0;
background:url(./b1.gif) no-repeat center top;
}
#hoge {
background:url(./b2.gif) no-repeat center top;
margin: 0 auto;
whidth: 600px; /* 幅は適当に */
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS PCサイズで赤い画像2つと、青い画像2つがそれぞれ横に2つずつ並んでいるのですが、これをスマホサイズ 5 2022/04/11 12:01
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- HTML・CSS htmltとcssのコードで 1 2022/11/26 13:37
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- HTML・CSS <!DOCTYPE html> <html> <head> <meta charset="utf-8 2 2023/01/05 01:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
Webページのリンクの貼り方を教...
-
、URL化させるにはどうしたらい...
-
スマホでHTMLファイルを開いて...
-
Duolingo のソースコードの名前...
-
テーブルの行を折りたたみたい...
-
CSSについて教えてください。 ...
-
CSS、Bootstrapについて contai...
-
htmlソース文の 各行 改行位置...
-
コードを書いて下さい( ; ; )...
-
別サイトのHTML内にある情報を...
-
画像が分割されて切り替わる、...
-
WEBページを強制的に横画面で見...
-
goo は、放置?
-
HPレイアウトが同じページのヘ...
-
1つの「ホームページビルダー2...
-
静止画画像をクリックすると音...
-
テーブルのセルデータを自動改...
-
CSSデータの作成方法について(...
-
htmlで<form>~</form>を並べて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
テーブルのセルデータを自動改...
-
goo は、放置?
-
htmlソース文の 各行 改行位置...
-
1つの「ホームページビルダー2...
-
HPレイアウトが同じページのヘ...
-
CSS、Bootstrapについて contai...
-
CSSについて教えてください。 ...
-
静止画画像をクリックすると音...
-
、URL化させるにはどうしたらい...
-
テーブルの行を折りたたみたい...
-
css初心者 フレックスボックス...
-
WEBページを強制的に横画面で見...
-
Webページのリンクの貼り方を教...
-
Duolingo のソースコードの名前...
-
メモ帳の段落の揃え方
-
スマホ(android)のタッチパネ...
-
コードを書いて下さい( ; ; )...
-
HTMLで画像をポップアップで表...
-
角丸画像の背景色を透明にした...
おすすめ情報