
サンプルサイトを製作中です。どうしても直せない現象があるので
仮アドレスでup致しました。スクロールすると背景が途切れてしまします。
原因として html.body.wrapper に height: 100%; としている事と
関係があると思うのですが。スクロールしても表示されるようにしたいので
知恵をお貸しください。
途中の状態でのupで心苦しいのですが、以下のサイトになります。
http://greencampus.web.fc2.com/
No.3ベストアンサー
- 回答日時:
No.2です。
補足を拝見しました。【B】なら割と簡単です。
下記の修正で、トップスページ(http://greencampus.web.fc2.com/index.htm)がFirefox2/3、IE6/7、Safari3/4、Opera9.61にて【B】の状態で表示される事を確認しています。
----------------------------------------------------------------------
【base.css】修正が必要なセレクタのみ抜粋(「※~」以下は注釈ですので実際の使用の際は削除を)
----------------------------------------------------------------------
html, body {※(1)
height: 100%;
min-height: 100%;
}
body{※(2)
font-size: 0.75em;
color: #555;
line-height: 1.2em;
text-align: center;
}
#wrapper{※(3)
width: 774px;
height: 100%;
min-height: 100%;
margin: 0px auto;
background: url(../images/bg-main.gif) repeat-y;
text-align: left;
}
body > #wrapper {※(4)
height: auto;
}
#wrap-main{※(5)(6)
width: 760px;
margin: 0px auto;
}
#contens{※(6)
clear: both;
padding: 0px 20px;
}
#sidebar{※(6)
float: left;
width: 148px;
}
#page-right{※(6)
float:right;
width: 540px;
position: relative
}
#footer {※(6)
clear: both;
padding-top: 25px;
text-align: center;
}
----------------------------------------------------------------------
(1)"height: auto !important;"は不要です。
(2)本来は不要なのですが、質問者様のXHTML文書ではIE6が後方互換モードに切り替わってしまう為、"text-align: center;"を併用してIE6のこのモードでもwrapperコンテナがセンタリングされる様、配慮しています。IE6を対象としないなら"text-align: center;"は勿論いりません。
(3)
・"height: 100%;"では、コンテンツのボリュームが少ない時にはIE6しかbg-main.gifがウィンドウサイズ一杯に伸びてくれません。"min-height: 100%;"を併用します。なお、IE6はこのmin-heightが効きませんが、"height: 100%;"の方で同様の挙動をするので併用する事で問題点をクリアできます。
・backgroundプロパティの様に、一括指定ができるものはまとめた方が記述もすっきりしますし、カスケーディングもわかりやすいのでベターです。
・(2)でコンテンツ全体に"text-align: center;"が適用されてしまったので、wrapperコンテナ内を"text-align: left;"に戻します。
(4)子供セレクタ">"(直接の子要素にのみ適用)を使用して、bodyに対するwrapperコンテナを"height: auto;"とする事で、ウィンドウサイズの拡大縮小にかかわらずwrapperコンテナの垂直方向の描画領域が常にbodyの領域一杯になります。例によって、IE6はこのセレクタも無視するのですが、IE6ではバグによりwrapperコンテナの"height: 100%;"で同様の挙動をしているのでごまかせます。
(5)"text-align: left;"は(3)でwrapperコンテナの方に適用したので不要になります。
(6)"height: 100%;"は不要です。
いかがでしょうか。不具合等ありましたらまた補足して下さい。
なお、
> 使用ブラウザはFirefox3.0 IEはmacなので現状5.2でしか確認してません。
Mac版IEは開発を中止して既に何年にもなりますし、最後のver. 5.2も山のようにCSS関連のバグを抱えているので、もう無視して下さい。
近年購入されたMacにはもうSafariしか入っていませんし、Mac版IEにまで完全に対応しようとすると、(X)HTMLのコードを煩雑にしたり、CSSを振り分けたりという非常に面倒くさい処理を抱え込む事になり、メンテナンスの上でも非効率となり現実的ではありません。
#上記もおそらくMac版IEでは思い通りの表示にはなりませんので。
で、できました!!!ありがとうございます。1週間も悶絶していた現象が、あっさりと!
とても中途半端な状態のサイトにも関わらず、丁寧に回答と解説を頂いてありがとうございました。とてもとても分かりやすかったです。
お礼が賞賛の言葉を綴るしかできないのが残念なぐらいです。本当にありがとうございました。また、これで挫けず仕上げられそうです!!
No.4
- 回答日時:
No.3です。
”IE6を考慮に入れる”のであれば、一部訂正を。
【訂正】
#wrap-main{
width: 760px;
margin: 0 0 0 7px;
text-align: left;
}
先に申し上げた通りIE6の後方互換モードでは、"margin: auto;"が無効の為、子要素のheaderコンテナとfooterコンテナが左右均等の余白をとって描画されずにwrapperコンテナの左端から描画されてしまう為、結果左端が7px分bg-mainに重なってしまい右端が7px余分に空いてしまう事になります。
これを回避するには、左右marginをautoにするのではなく、実際の数値((774px-760px)÷2=7px)を左marignとして設置すれば、結果的にmarginをautoにした場合と同じ描画になります。
ちなみに。
> body に背景bg-mainを設定したら下までは表示されたのでが、背景位置を background-position: center; として、wrapper-mainの左右 margin: auto;と設定すると ヘッダーフッダーの画像が背景画像のラインから1px左にはみ出る現象が起きてしまった
このやり方でも、こういった不具合は("margin: auto;"の効かない)IE6以外の環境では確認されなかったのですが。
No.2
- 回答日時:
> スクロールすると背景が途切れてしまします。
サンプルサイトの見え方がUA(ブラウザ)によってかなり異なる(IE6と、IE7と、Firefox2/3、だけでもそれぞれ異なっています)ので、どの状態の事を仰っているのか今ひとつわかりかねるのですが…
もしかして単に、ウィンドウサイズの大きさやコンテンツのボリュームがいかなる場合も背景画像bg-main.gifがウィンドウの縦方向の領域一杯に表示されているという状態をご希望なのでしょうか?その場合も、大きく分けて下記の様な2パターンが考えられるのですが。
【A】
メインのコンテンツである<div id="contens">~</div>の内容のボリュームが:
少なく、ウィンドウサイズよりも短い位置で縦方向の描画が終わる(スクロールバーが発生しない)場合は、<div id="contens">~</div>の下部の余白が伸びて<div id="footer">~</div>がウィンドウの下端に表示される
多く、ウィンドウサイズよりも長い位置で縦方向の描画が終わる(スクロールバーが発生する)場合は、<div id="contens">~</div>の描画が内容いっぱいで終わった位置から<div id="footer">~</div>が表示される。
【B】
<div id="footer">~</div>は<div id="contens">~</div>の内容が終わったところで表示されるだけで構わない(コンテンツの縦方向のボリュームよりウィンドウサイズの方が大きい場合はフッターがウィンドウ下端には表示されない)が、背景画像bg-main.gifはウィンドウの下端まで常に伸びていて欲しい。
【A】【B】いずれでしょうか?
それとももっと違う事を問題にしておられるのでしたら、具体的に補足して下さい。
この回答への補足
早速の回答ありがとうございます!!
正直Aもご指南頂きたいのですが、今回【B】の方法を教えてください。
ただ試しに body に背景bg-mainを設定したら下までは表示されたのでが、
背景位置を background-position: center; として、wrapper-main
の左右 margin: auto;と設定すると ヘッダーフッダーの画像が背景
画像のラインから1px左にはみ出る現象が起きてしまったので、
できればそれ以外の方法をお願いしたいのですが…。
(これは center と auto のウィンドウ端からの位置概念が違う
からでしょうか。それとも画像幅が760pxが問題でしょうか。)
画像幅は全てジャスト760pxにしてのに、pxをFirefoxに揃えるとopera
やsafariでおかしくなります。
使用ブラウザはFirefox3.0 IEはmacなので現状5.2でしか確認してません。
(macは5以降サポートされなくなってしましました。)
補足ついでに疑問も追加してしましましたが、上手くお伝えできた自信
が無いので【B】の!【B】のご指南どうか宜しくお願いします!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript スマフォではボタンを表示させたくない 2 2023/01/20 14:26
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- その他(Microsoft Office) googleスプレットシートで左右の数値を比較して色判別させたい 2 2022/06/06 18:33
- Windows 10 zoomで自分の顔の背景 3 2023/06/07 22:34
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- その他(ブラウザ) zoomのバーチャル背景が選べない 4 2022/12/08 12:38
- その他(ブラウザ) インターネットが頻繁に途切れます、ただしブラウザのみです 3 2023/08/10 11:25
- ネットワーク 自作のサーバーPCが自宅内のネットワークに接続できない 3 2023/01/24 16:58
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
IE6からHTML罫線ができるだけ細...
-
list-style-image・・マーカー...
-
iframeが正しく表示されません
-
form input テキストを上下中央...
-
表示倍率を変えるとレイアウト...
-
[CSS]<ul>タグのスタイル指定に...
-
無駄なところ省いてほしいです。
-
入力フォームとセレクトボック...
-
画像イメージの上下左右、欲し...
-
サイトタイトルに影をつけたい
-
中点「・」の改行について
-
Firefoxで見るとli要素レイアウ...
-
ul/liタグでのリスト表示におけ...
-
CSS、width100%でもできる余白
-
テーブルのセル間に余白が空い...
-
position:fixed;でメニューを右...
-
HTML CSS ボタンの縦幅が変わら...
-
余分な縦スクロールバーが出て...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlの文字が縦書きになる
-
widthやheightの数値に単位(px...
-
CSSがなぜかfont-sizeだけ効か...
-
form input テキストを上下中央...
-
【CSS】ヘッダーの高さが不明の...
-
画像イメージの上下左右、欲し...
-
css初心者 フレックスボックス...
-
余分な縦スクロールバーが出て...
-
W3Cのソースコードの検証サービ...
-
表示倍率を変えるとレイアウト...
-
safariでの横並びリスト(List...
-
<div>と<div>の間の10px程の...
-
border-style:solidで文字がずれる
-
入力フォームとセレクトボック...
-
div内に外部のurlを表示させたい
-
divの中にspanを右寄せにするに...
-
dl,dt,ddタグでdtに対して、row...
-
divで囲まれたpaddingの指定を...
-
footer を横幅いっぱいに広げる...
-
CSSで指定した背景画像にリンク...
おすすめ情報