2010-11-19 5 views
0

自分自身をCSSコーナーにコーディングしました。このページを見て:ビューポートより広いコンテンツを表示すると、ヘッダーやフッターが壊れないようにするにはどうすればよいですか?

http://staging.jungledragon.com/image/1082/sizes/large

は、このページを開いて、水平スクロールバーが表示されるように、ブラウザウィンドウの幅は、コンテンツの総幅よりも小さくなっていることを確認してください。右にスクロールすると、ヘッダーとフッターの両方が壊れていることがわかります。その理由は、ヘッダーとフッターが100%に設定されているためです。 100%はブラウザウィンドウ自体ではなく、ビューポートの幅を意味します。ソリューションのための私の検索で

、この1つは多くのことをポップアップ表示:私は私のフッターとヘッダーがする必要がどのように広い事前に知っていないので、

http://www.springload.co.nz/love-the-web/backgrounds-disappear-on-horizontal-scroll/

これは私のためのソリューションではありません。また、スクロールバーが必要ない場合でもスクロールバーを常にトリガーするので、幅の値を非常に高い値に設定することはできません。

実際のブラウザウィンドウのサイズに合わせてヘッダーとフッターを拡張できますが、スクロールバーの動作は適切なままです。まったく可能ですか?

+1

この問題はヘッダーとフッターには当てられませんが、オーバーフローするイメージにあります。それはコンテナよりも大きく、ブラウザーに水平スクロールバーを強制します。あなたのレイアウトを完全に破壊しないために、ページの残りの部分はブラウザによって変更されず、結果としてイメージがコンテナから抜けてしまいます。画像に最大幅:100%を与えます。それがコンテナの端を越えて流れるのを防止する。または、あなたが望むようにサイズを変更してください。 – Bazzz

+0

@Bazzz:申し訳ありませんが、それは私が望んでいた解決策ではありません。私は画像のサイズを通常のレイアウトの幅に合わせて変更できることを知っていますが、作業用のレイアウトで画像をこのワイドに表示します。 – Ferdy

+0

実際にその画像を列の中に入れておく必要があります。レイアウトの幅を変更することができます。それはそれをするだろう。 – Dave

答えて

1

これは決定的な解決策ではないことをお詫びしますが、すてきなCSSデバッガを使ってページを見ると、htmlとbodyの幅がオーバーフローした画像に対応するように伸びないことがわかります。

これは、ヘッダーとフッターが伸びない理由です。 width:100%は「ビューポートの幅」を意味するものではなく、「包含ブロックの幅」を意味します。

収容ブロックは本体です。そして体は伸びていません。それは画像の幅にかかわらず一定のままです。したがって、#wrappertopらの幅は水平スクロールビューポートの100%ではありません。それは体の100%です。

ビューポートが水平方向にスクロールして、ヘッダーとフッターが伸びていて、本当に死んでいる場合は、最初にbodyブロック(またはHTML)にCSSを適用しようとします。 )あなたがそれらを伸ばしさせることができるかどうか見るために。それで、あなたのヘッダーとフッターはおそらくもなります。

イメージをセンタリングするか最大幅にすることは、2つの良い解決策です。しかし、それがあなたが望むものでない場合は、それがあなたの特権です。 :-)

もし私がチャンスを得るなら、私は少し実験することができます。しかし、それは昼食です。それは、しかし、見て開始する場所です。

+0

ねえ、私は見ました。その効果を達成したい場合は、幅を全く設定しないようにする必要があります。そしてそれはまだ完璧ではないかもしれません。 1分後に私の回答にいくつかのコードを追加します。 – morewry

+0

うわー、気にしていたのはFirefoxだけだった。おそらく十分ではありません。どのようにイメージのファンシーなエフェクトは?とにかく水平スクロールバーはお勧めしません(http://www.useit.com/alertbox/20050711.html)。 jQueryを使用すると、画像の幅を取得したり、既に書かれたこれらのプラグイン(http://plugins.jquery.com/plugin-tags/pan)のような効果を与えることができます。またはオーバーフロー:画像の周りのみで自動(内側のスクロールバー)? – morewry

+0

詳細な説明をありがとう。私は最大幅:100%の解決策に行くつもりだと思う。すべての画像フォーマットで「大」までうまく動作します。オリジナルの画像サイズは、3000pxにも及ぶことがありますが、私は最適化されたレイアウトを作成するか、まったくレイアウトを作成しません。 – Ferdy

0

ヘッダーとフッターの最小幅を中央列の幅(#colful)に設定するか、画像が含まれるページの最大幅に設定できます。 OK用事、あなたはすでにやった...

width: 900px; 
margin: auto 0; 

min-width: 123px; 

は、そして、あなたはこのような何かを代わりに左マージンを行うのでは、あまりにも中央の列を中央にする必要があります。その列の中にイメージを入れる必要があります。手動でイメージのサイズを変更することも、 "overflow:none;"のようなオーバーフロープロパティを行うこともできます。

+0

あなたの提案をありがとう。私は、ページがどれほど広がっているのか分からず、イメージの幅を固定値に制限できないということを考えれば、私が望むものは不可能であると結論付けるべきでしょうか? – Ferdy

+0

別の提案は、ウェブサイト全体をコンテナに入れ、width:100%とoverflow:noneに設定することです。これにより、ブラウザウィンドウの端にある画像は切り取られますが、拡大して全体の画像を見ることができます。 – Dave

関連する問題