2011-01-28 12 views
2

Border CSSコマンドで単純な境界線を追加する固定幅ページがあります。しかし、私はこの境界線がページを風船に掛け、小さな画面に水平スクロールバーを持たせたくありません。私はCSSとあまりにも優れていませんが、移動したくない他の要素に罫線を追加するためにすでに同様のことを行っていたので、境界の幅をオフセットするために負のマージンを使用して調べました。しかし、私がメインのコンテナ部門でそれを行うと、すべてが中心から外れて、ページの左側に壊れてしまいます。私はBlueprintのCSSフレームワークを使用しています。そこにはマージンを乱しているものがあり、メインコンテナに「マージン:0オート」が適用されていることがわかりました。それをページの中央に配置します。マージンを中心とした要素上の余白マージン:0 auto;

これで、レイアウトを画面の中央に置いて、余白の枠線をページに適用する方法を今質問します。私はdiv内のコンテナをラップしようとし、それに境界と負のマージンを適用しようとしましたが、サイコロ、私はコンテナ内のdivを入れ子にして、コンテナに境界線を適用しようとしましたが、それはひどくまた行きました。誰か私にここに骨を投げる!

答えて

0

負のマージンが機能している場合は、幅が固定されたラッパーdivを追加してmargin: 0 autoにセンタリングを戻すことができます。

私のテストでは、マイナスマージンはボックスの幅を変更しませんでした。他のいくつかの戦略:

  1. ボーダーによって追加された幅をオフセットするようにdivの幅を調整します。
  2. 左と右の罫線をシミュレートする背景イメージをdivに追加します。
  3. JavaScriptを使用してウィンドウの幅を検出し、必要に応じて枠線を削除します。
  4. body { overflow-x: hidden }を追加すると、水平スクロールバーが表示されなくなります。
  5. 余裕がある場合にのみ境界を追加するには、CSS3 media queryを使用してください(古いブラウザの場合は、JavaScript(#3を参照)に戻ってもかまいません)。

更新:代わりに負のマージンの境界が最初の場所での要素の幅に追加されないように、あなたはおそらくbox-sizing: border-boxを使用することができます。

+0

わかりませんが、私のコンテナに2つのラッパーが必要ですか?あなたが提案しているのはおそらく単一のラッパーを追加することだと思うので、これは物事を混乱させます! – Milo

+0

@Milo Oneラッパーだけど、それにはあまり運がなかったので、私は他のアイディアに移りました。提案1-5のどれもHTMLに何かを追加する必要はありません。それらのうちのいずれかが理にかなっていますか? 4は最も簡単です。 5はおそらく最も進んでいますが、おそらく最高です。 –

+0

私は#1を理解していますが、ページ内のすべてのスペースを使用しているため、これはできません。背景画像を追加するのは基本的に1と同じですが、画像を表示できるようにするためにページの内側にコンテンツを移動する必要があります。 3、私はJavaScriptに精通していないと私はそれがページの境界のためだけに時間を投資するとは思わない。 5もちょっと複雑すぎると思います。面白いようですが、私はその意味を理解していません - これは水平スクロールバーが何に関係なく表示されないことを意味しますか? – Milo

関連する問題