dポイントプレゼントキャンペーン実施中!

css.divのみでレイアウトする勉強中です。
テーブルのように表示内容によって変化する左右の要素の高さを
揃えるにはどうすればいいのかで悩んでいます。

<html>
<head>
<style type="text/css">
html{height:100%;}
body{height:100%;text-align:center;magin:0;}
.head{width:800;background:#f8ffff;border:1px solid #000;}
.main{height:100%;width:800;}
.left{height:100%;width:20%;float:left;background:#f8f8ff;border:1px solid red;}
.right{height:auto;width:75%;float:right;background:#aaaaaa;padding:5px;}
.center{height:1500;width:200;background:#00ffff;}
.foot{clear: both;background:#444666;color:#fff;}
</style>
<title>test</title>
</head>
<body>
<div class="head">title</div>
<div class="main">

<div class="left">
left
<br>
<font color=red>
※この要素を右と揃えたい</font>
</div>

<div class="right">
right
<div class="center">
この要素の高さが変わる
</div>
</div>

<div class="foot">
foot
</div>

</div>
</body>
</html>

A 回答 (4件)

ANo.2です。



いじってみたら一応それらしいものができたのでご報告・・・

<html>
<head>
<style type="text/css">
*{padding:0;margin:0}
body{text-align:center;}
.head{width:800px;background:#f8ffff;border:1px solid #000;}
.main{width:800px;overflow:hidden;}
.left{width:20%;float:left;background:#f8f8ff;border:1px solid red;padding-bottom: 32768px;
margin-bottom: -32768px;}
.right{width:75%;float:right;background:#aaaaaa;padding:5px;padding-bottom: 32768px;
margin-bottom: -32768px;}
.center{width:200px;background:#00ffff;padding-bottom: 32768px;
margin-bottom: -32768px;}
.foot{width:100%;background:#444666;color:#fff;}
.footer{clear:both;width:800px;position:relative;}
</style>
<title>test</title>
</head>
<body>
<div class="head">title</div>
<div class="main">

<div class="left">
left
<br>
<font color=red>
※この要素を右と揃えたい</font>
</div>

<div class="right">
right
<div class="center">
この要素の高さが変わる</div>
</div>

<div class="footer">
<div class="foot">
foot
</div>
</div>

</div>
</body>
</html>

これで希望通りの動きになると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。

なるほど。footerはpositionを指定することで対処できるんですね。
とても勉強になりました。これで上手く出来そうです。
ご丁寧にソースでの分かりやすい説明、ありがとうございました!

ちなみにですが・・自分なりに解決策を探しているうちにdisplay:table-cell;という方法にたどり着きました。
こんなにいろいろ手段があるなんて、悩んでいた自分が情けない・・CSSって奥が深いですね。

お礼日時:2008/08/03 00:10

floatを指定している親要素に対して背景画像を指定することで見かけ高さが揃っているように見せるテクニックが一般的だと思います。


この場合は#mainですね。
    • good
    • 0
この回答へのお礼

ありがとうございます。

親要素に背景画像を入れるという方法は思いつきませんでした。
恥ずかしながらdiv要素の指定にこだわっていて、基本的なことを忘れていたようです。ありがとうございました。

お礼日時:2008/08/02 23:54

こんにちは。



こちらの方法でできませんか。
http://coliss.com/articles/build-websites/operat …
    • good
    • 0
この回答へのお礼

ありがとうございます!

なるほど。
「padding-bottom」と「margin-bottom」を使うとは・・・こんな方法もあるんですね。
しかし、下にfooterを追加すると上手くいかないみたいです。
IEだと上手くいくんですが、Firefoxだとすごいことになってしまいました。

お礼日時:2008/08/02 19:58

こんにちわ。



もしかしたら…"valagin"水平位置が抜けているだけでしょうか。

違ってましたら御容赦ください。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

教えていただいた"valagin"というのは"vertical-align"のことでしょうか?

"valagin"というタグは検索しても見つからなかったので・・。
ちなみにvertical-alignでは、div(ブロックレベル要素)には適応できませんでした。

お礼日時:2008/08/02 15:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!