• 締切済み

2コラムのサイトをCSSで指定する方法

以下のようにtest.htmlとtest.cssを作成して2コラム(左がメニュー、右がコンテンツ)のレイアウトのサイトを作成した場合、左のメニュー部分のデータ(文字、画像等)の行数が右のコンテンツ部分のデータの行数よりも多い場合、コンテンツの下部に空白ができ下地のカラー(緑)が表示されてしまいます。逆に、右のコンテンツ部分のデータ(文字、画像等)の行数が左のメニュー部分のデータの行数よりも多い場合、メニューの下部に空白ができ下地のカラー(緑)が表示されてしまいます。  どのようにすれば、左のメニュー部分のデータ(文字、画像等)の行数が右のコンテンツ部分のデータの行数よりも多い場合でも、右のコンテンツ部分のデータ(文字、画像等)の行数が左のメニュー部分のデータの行数よりも多い場合でも下地のカラー(緑)が表示されないようにできるのでしょうか? 通常、このような問題はどのように対処するのか教えて下さい。 やはり、コンテンツ部分のデータの行数がメニュー部分のデータの行数よりも多くなると推測して下地のカラーの色(id=”main”のbackground-color)をメニュー部分の色(id="sidebar"のbackground-color)と同じ色にしておくしかないのでしょうか?ただし、このようにすると、推測どおりに行かずに左のメニュー部分のデータ(文字、画像等)の行数が右のコンテンツ部分のデータの行数よりも多い場合、コンテンツの下部に空白ができ下地のカラー(緑)が表示されてしまいます。 <test.htmlコード> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <link rel="stylesheet" href="css/test.css" type="text/css"> </head> <body> <div id="base"> <div id="header"> <p>ヘッダー</p> </div> <div id="main"> <div id="sidebar"> <p>サイドバー</p> </div> <div id="content"> <p>コンテンツ</p> </div> </div> <div id="footer">  <p>フッター</p> </div> </div> </body> </html> <test.cssコード> body { background-image:url(../img/example.gif); background-repeat:repeat; margin:0px; padding:0px; } #base { border:2px solid #000000; width:740px; margin:0px auto; text-align:left; background-color:#00FF00; } #header { background-color:#FFFF00; width:740px; height:130px; } #sidebar { width:150px; float:left; min-height:100%; background-color:#FF0000; } #content { width:550px; float:right; padding-left:20px; padding-right:20px; background-color:#FFFFFF; } #footer { clear:both; background-color:#FF00FF; height:130px; } 参考サイト等ありましたら、URL教えて下さい。 よろしくお願いします。

みんなの回答

  • syagain
  • ベストアンサー率54% (42/77)
回答No.2

#sidebar#contentの両方に適当なheight:◯◯px;を固定の同じ値で設定すれば、内容に関わらず高さを合わせられます。 height:◯◯px; overflow:scroll; を両方で設定すれば、「高さ固定+内容は自動でスクロール」と言う形で、 フレームページのように収めることはできます。 もちろん下地は映りません。 ……ぐらいしか思いつかなかったのですが、 「内容によって自動で変わる高さ」に、どちらも揃えたいのですよね。 参考URLで似たような話題が出ているので、参照してみて下さい。

参考URL:
http://www.tagindex.com/cgi-lib/q3bbs/patio.cgi?mode=view&no=1208
kitty1000
質問者

お礼

syagainさん ご回答、ありがとうございました。 参考にさせて頂きます。

  • nori_007
  • ベストアンサー率35% (369/1048)
回答No.1

一番簡単なのは、#main のバックグランド画層に、#sidebar、#content のバックグランドに相当する、2色分けのバックグランド画像を言えれば解決です。#sidebar、#content ではバックグランドの画像、色指定はしません。 他に、Javascript ですが、下記の方法は参考にならないでしょうか。 ブロックレベル要素の高さを揃えるheightLine.js[to-R] http://blog.webcreativepark.net/2007/07/26-010338.html

参考URL:
http://blog.webcreativepark.net/2007/07/26-010338.html
kitty1000
質問者

お礼

nori_007さん ご回答、ありがとうございました。 参考にさせて頂きます。

関連するQ&A

専門家に質問してみよう