• ベストアンサー

ウインドウ幅を狭めるとボックスが下に飛んでいきます

cssを使ってdivでテーブルのようなレイアウトにしています。 サイト全体の設定は、左から「メニュー」「メイン」「右サイドバー」といった感じで、メインの部分にdivでボックスを作ってます。 メニューは固定でメインとサイドバーは可変にしているのですが、ブラウザのウインドウ幅を左右に狭めると、floatで左右にくっつけたボックスがバラバラになったり、下へ飛んでいったりしてしまいます。 テキストの場合は可変してもいいのですが、ボックスやテーブルは動いてほしくありません。 常に前面に固定されて表示されるような方法はあるのでしょうか?

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

  • ベストアンサー
  • tyouei
  • ベストアンサー率32% (17/53)
回答No.3

 No.2の方の出されたURLと被るのですが 【CSS】 /* センタリング */ .cent { text-align: center; } .cont { margin-left: auto; margin-right: auto; width: 700px; } /* メニューサイド */ #mnu { float: left; text-align: left; width: 300px } /* メインコンテンツ */ #main { float: right; text-align: left; width: 400px } 【HTML】 <html> <head> ==中略== </head> <body> <!-- センタリング --> <div class="cent"> <div class="cont"> <!-- メニュー --> <div id="menu"> ==中略== </div> <!-- メインコンテンツ --> <div id="main"> ==中略== </div> </div></div> </body> </html>  この場合は2つに割ることを想定していますが、このような感じとなります。  最初の2つで部分でセンタリング(2つとも必須で、順番は守ってください)をしているのですが、センタリングが必要なければ「.cont { width: 700px; }」だけでいいです。  イメージとしては外枠を括って内部を割る、というイメージです。ちなみに、場合によってはボックスが下に飛んでしまうことがあるので、各ボックスの和(この場合はmenu+main)が外枠(cont)の値よりも若干少なくするようにすると良いかもしれません。  今回はpxで幅を固定するやり方でしたが、画面幅にそろえる形であればwidthを%にすれば良いかと思います。この場合、センタリングは必要ないので外枠のみを設定してください。

noname#59034
質問者

お礼

遅くなってすみません。教えてもらったやり方で、何とか期待するものに近いデザインを作れました。 ご丁寧にありがとうございました。

その他の回答 (3)

  • tyouei
  • ベストアンサー率32% (17/53)
回答No.4

 No.3です。  No.3は即席で打ち込んだので大分省略しています。DOCTYPE宣言などは必要に応じて入れてください。

noname#56851
noname#56851
回答No.2

http://desperadoes.biz/style/dan/index.php このサイトには、お世話になりました。 多分、ヒントが得られると思います。

noname#59034
質問者

お礼

すごく分り易いサイトでした。 質問以外のことも沢山勉強できました。どうもありがとうございます。

  • Evreux
  • ベストアンサー率29% (225/774)
回答No.1

nobr ってHTMLタグを使ってもだめですかね?

noname#59034
質問者

お礼

ボックスをnobrで囲んでみたところ、ボックス内のテキストが改行されずにはみ出しました。 ウインドウ可変は相変わらずされてしまうようです。