• ベストアンサー

cssでのレイアウト

下をピッタリそろえて「L」のような形にしたいのですが、簡単な方法を教えてください。下がそろっていませんが、イメージは↓のような感じです。もっと簡単に下揃えをつくる基本的な方法があったような気がするのですが分かりません。 宜しくお願いします。 ■html■ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional1//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>CSS練習</title> <link href="def2.css" rel="stylesheet" type="text/css"> </head> <body> <div class="blue"> <h1>あ行</h1> あいうえお </div> <div class="red"> <h1>か行</h1> かきくけこ </div> <div class="blue"> <h1>さ行</h1> さしすせそ </div> <div class="a"> <h1>あ行</h1> あいうえお </div> <div class="ka"> <h1>か行</h1> かきくけこ </div> <div class="sa"> <h1>さ行</h1> さしすせそ </div> </body> </html> ■CSS■ body { font-size: 12px; color: #333333; background-color: #FFFFFF; } h1 { color: #000000; font-size: 16px; } div.red { background-color: #ff3333; } div.blue { background-color: #3333ff; } div { width: 3cm; } div.a { background-color: #ff7777; } div.ka { margin-top: -4em; margin-left: 3cm; background-color: #ff7777; } div.sa { margin-top: -4em; margin-left: 6cm; background-color: #77ff77; }

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

  • ベストアンサー
回答No.2

一つ入れ物追加して高さ指定、中をheight100%にする、なんてのはどうでしょう。 高さの数値は相対指定になる単位がいいと思います。 横並びはfloatが早いです。 <div id="sample"> <div class="a"> <h1>あ行</h1> あいうえお<br /> あいうえお<br /> あいうえお<br /> </div> <div class="ka"> <h1>か行</h1> かきくけこ </div> <div class="sa"> <h1>さ行</h1> さしすせそ<br /> さしすせそ<br /> </div> </div> div.a { background-color: #ff7777; float:left; height:100%; } div.ka { float:left; background-color: #ff7777; height:100%; } div.sa { float:left; background-color: #77ff77; height:100%; } #sample { float:left; width:auto; height:7em; ←emは相対 } 背景は画像にしてもいいのではないかと。 質問のソースではインライン化しての横並びは無理です。 HTML変えればやれないことはないですが、floatの方が楽だと思います >「インライン要素として」で思い出したのですが... spanは元々インライン要素でdivはブロック要素です。 Divにdisplay:inlineするとインライン要素として振舞うようになります。 何でインラインなら横に並ぶのか、というのは両者の違いについて調べれば分かってくると思います。

snyuki
質問者

お礼

floatが一番実用的ですね。ありがとうございました。

その他の回答 (1)

  • 15mm
  • ベストアンサー率65% (65/100)
回答No.1

div { width: 3cm;height:4em; } widthを指定した目的は横の配置をそろえるためだったのではないでしょうか。 それと同じ要領でheightを指定してたての大きさを固定してあげるといいと思いますよ。 (もともと使われていた4emをそのまま使ってみましたが、ちょっと狭すぎる気がします) div.a, div.ka, div.sa{display:inline;} もういっそのことインライン要素として横に並んでもらう、という方法です。 画面下端でそろえるのでしたらまた違う方法を使うのですが・・・ >もっと簡単に下揃えをつくる基本的な方法があったような気がするのですが <table>を使ったレイアウトですと、内容が増えても横幅、縦幅を自動で適当な大きさに変えてくれますよ。

snyuki
質問者

補足

ありがとうございます。いろいろな書き方があるんですね。CSS初心者なので感心してしまいました。 >heightを指定してたての大きさを固定してあげる のやり方でうまくいきました。 >インライン要素として横に並んでもらう このやり方がうまくいかないのですが、書き方をもう少し詳しく教えては頂けないでしょうか?よろしくお願い致します。 「インライン要素として」で思い出したのですが、spanをつかって並ばせる事も出来たような気がするのですが…可能でしょうか? 何度も申し訳ありませんが、よろしくお願いします。

関連するQ&A