• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:CSSでの段組の組合せについて)

CSSでの段組の組合せについて

このQ&Aのポイント
  • CSSを使用して#header、#container、#footerを縦方向に配置し、#container内を左右に2段に分ける方法についての質問です。#content1と#content2は縦に並び、それぞれの左右の幅を変え、#box1と#box2、#box3と#box4を左右に並べます。
  • 現在Dreamweaver8を使用していて、#header、#container、#footerを縦方向に配置し、#container内を左右に2段に分けたいです。しかし、#content1と#content2の設定がうまく効かず、表示がおかしくなっています。解決方法を教えてください。
  • CSSで段組を作成する際に注意すべきポイントについて質問です。納期が迫っており、困っています。

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

  • ベストアンサー
  • ygyo0078
  • ベストアンサー率66% (8/12)
回答No.2

FireFoxとSafariでどうなるか書かれていなかったので、 状況はわかりませんが、CSSソースを作ってみました。 おそらく期待されていることができていると思いますが。 (そちらのソースが表示される前から作り始めたので オリジナルになってしまいました。ご了承ください) body { margin: 0 auto; text-align: center; } p { margin: 0; padding: 10px 0; } #header { margin: 0; padding: 0; width: 800px; background: #999999; text-align: left; } #container { margin: 0; padding: 0; width: 800px; text-align: left; } #content1 { margin: 0; padding: 0; width: 400px; float: left; } #box1 { margin: 0; padding: 0; width: 100px; float: left; background: #CCFFFF; } #box2 { margin: 0; padding: 0; width: 300px; float: left; background: #FFFFCC; } #content2 { margin: 0; padding: 0; width: 400px; float: left; } #box3 { margin: 0; padding: 0; width: 150px; float: left; background: #FFCCFF; } #box4 { margin: 0; padding: 0; width: 250px; float: left; background: #99FFCC; } #footer { margin: 0; padding: 0; width: 800px; clear: both; background: #FFCC99; text-align: left; } .clear { margin: 0; padding: 0; clear: both; font-size: 1px; }

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • ygyo0078
  • ベストアンサー率66% (8/12)
回答No.4

すみません、自分が勘違いしていたようです。 上下の配置だったらfloat:leftは必要ありませんでしたね。 あと一つポイントを付け加えると、 marginとpaddingはすべての要素に適用させるほうがよいです。 h1~6やpはデフォルトでmarginやpaddingが設定されているからです。 もしCSSが増えて乱雑になるのがいやであれば、 CSSの一番最初に以下を設定して、marginやpaddingをリセットすることができます。 * { margin: 0; padding: 0; font-style: normal; font-weight: normal; } 自分が学んだ中で一番わかりやすかった本は、 「CSSプロフェッショナル・スタイル―世界の「最先端」事例に学ぶ」です。 海外のハイレベルなサイトを紹介している本なのですが、実際に紹介されているサイトにアクセスしたりソースを見ることで、かなりのレベルアップができると思います。

参考URL:
http://www.amazon.co.jp/CSS%30d7%30ed%30d5%30a7%30c3%30b7%30e7%30ca%30eb%30fb%30b9%30bf%30a4%30eb%2015%4e16%754c%306e%30
nikita16
質問者

お礼

ほんとにありがとうございます。 CSSって奥が深いですね・・・ ご紹介の本、手に入れて勉強してみます!

すると、全ての回答が全文表示されます。
  • ygyo0078
  • ベストアンサー率66% (8/12)
回答No.3

(続き) HTMLソースです。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <link rel="stylesheet" href="main.css" media="all"> <title>テスト</title> </head> <body> <div id="header"><p>header</p></div> <div id="container"> <div id="content1"> <div id="box1"><p>box1 <br><br><br><br><br></p></div> <div id="box2"><p>box2 <br><br><br><br><br></p></div> <div class="clear">&nbsp;</div> </div> <div id="content1"> <div id="box3"><p>box3 <br><br><br><br><br></p></div> <div id="box4"><p>box4 <br><br><br><br><br></p></div> <div class="clear">&nbsp;</div> </div> </div> <div id="footer"><p>footer</p></div> </body> </html> floatを適用させたdivのすぐ後に、clear:bothを適用したdivを入れています。 box1とbox2の下で一回clear:both。box3とbox4の下で一回clear:both。 content1とcontent2に関しては、footerにclear:bothを適用させて、回り込みを解除させています。 回り込みをさせた後はclearを適用させれば、大体の問題が解決すると思います。

nikita16
質問者

お礼

すごく早いお返事ありがとうございます! そしてCSSもHTMLまで組んでいただいて感謝です! 実は私の説明が悪く、結果が違っていたのですが(#content1と#content2は上下に並ぶ)、widthを変更するときれいに狙い通りになりました! あとは、paddingやらmarginを入れて見目良くしていきます。 でもすごいですね(^^)どうしたらygyo0078さんのようにCSSに精通できるのでしょう? float:leftが大活躍ですね。なぜ上下の配置でleftなのか・・・解せない・・・けど考えないようにします。 ありがとうございました。 ちなみに、CSSのお勧め本があれば教えてください。

すると、全ての回答が全文表示されます。
  • nikita9
  • ベストアンサー率0% (0/1)
回答No.1

すみません、質問に800文字以上入れられなかったので、別アドレスで先ほどの内容を補足します。 CSSは #header { background: url(***.gif) no-repeat; width: 100%; height: 80px } #container { margin-right: auto; margin-left: auto; width: 880px } repeat-y; padding-right: 10px; padding-left: 10px; width: 860px; clear: both; } #content1{ background: url(***.gif) repeat-y; padding-right: 10px; padding-left: 10px; width: 860px; clear: both; } #box1 { float: left; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; border-right: 1px solid #50545a; width: 179px } #box2 { float: left; width: 640px; min-height: 350px; margin-bottom: 10px; margin-left: 10px; text-align: left; } #content2 { background: url(***.gif) repeat-y; margin-top: 10px; width: 100%; height: auto; clear: both; } #box3{ font-size: 8pt; line-height: 12pt; float: left; padding-left: 10px; width: 180px; text-align: left; } #box4{ float: left; width: 660px; text-align: left; } です。 宜しくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A