人生のプチ美学を教えてください!!

画面を上下に分けて,上部の高さをpx単位で指定して下部は残り全部にするのをスタイルシートで実現したいと思い,次のようにしてみたんですがうまくいきません.

<html>
<body style="margin:0px; padding:0px;">
<div style="width:100%; height:100px; background-color:#ccf;">
画面上部
</div>
<div style="width:100%; height:100%; background-color:#fcc; ">
画面下部
</div>
</body>
</html>


要は下部の「残り全部」のやり方がわかっておらず,全体的な高さが100px+100%になり,表示画面より下に100pxはみ出してしまいます.
次のようにdivを入れ子にするとうまくいくんですが,内部に表示させる内容によっては不具合が出るので,どうしてもdivどうしが独立した形で実現させたいです.

<html>
<body style="margin:0px; padding:0px;">
<div style="width:100%; height:100%; background-color:#fcc; ">
<div style="width:100%; height:100px; background-color:#ccf;">
画面上部
</div>
</div>
</body>
</html>

他の質問サイトでも尋ねてみたのですが,質問の意味を理解してもらえずに別に問題はないという回答を1件頂いたのみで解決できませんでした.また,テーブルではなく必ずスタイルシートで実現したいです.対策をご存知の方,ご教示よろしくお願いします.

A 回答 (3件)

思い出したのでIE対応にするための追記。



前回のサンプルの<head>~</head>に以下を追加。
<!--[if IE]>
<style type="text/css">
#Content {
width:100%;
height:expression(document.body.clientHeight - 100);
}
</style>
<![endif]-->

参考
http://www.keynavi.net/ja/bugh/comments.html
http://useyan.x0.com/s/html/expression/
    • good
    • 0
この回答へのお礼

こんなに完璧な回答を頂けるとは...ただただ驚くばかりです.すごい方にご教示頂けて本当によかったです.ありがとうございました.これ以上の回答はこの世に存在しないと思いますのでこれで締め切ります.可能なら1万ポイントぐらい差し上げたいです...

お礼日時:2006/09/18 11:53

CSSとしてはやりよう(※1)はあるんですが、WinIEのバグ(※2)のために実質的には不可能です。



※2
http://members.at.infoseek.co.jp/cssbug/detail/w …

※1 FirefoxやOperaではOK
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title></title>
<style type="text/css">
html {height:100%;}
body{
margin:0;
padding:0;
height:100%;
}
#Header {
height:100px;
background-color:#cfc;
}
#Content {
position:absolute;
top:100px;
left:0;
right:0;
bottom:0;
overflow:auto;
background-color:#ccc;
}
</style>
</head>
<body>
<div id="Header">
Header
</div>
<div id="Content">
<p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p>
<p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p>
<p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p>
<p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p><p>aaaaaa</p>
</div>
</body>
</html>
    • good
    • 0
この回答へのお礼

まさに望んでいた回答です! Contentのaaaaaaの数を減らしてOperaで確認したら希望通りに表示されました.ご回答ありがとうございます.しかしIEはバグでNGとは...トホホです...

お礼日時:2006/09/18 02:46

パーセント指定は親要素に対する割合なので、原理的には無理ですよね。


ってことで、多分無理だと思いますよ。

>内部に表示させる内容によっては不具合が出るので

どんな不具合でしょう?こっちを直す方が早い気がしますが。

参考URL:http://sourcemania.jpn.org/doc/css_height/#percent
    • good
    • 0
この回答へのお礼

ご回答いただきありがとうございました

お礼日時:2006/09/18 02:40

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


おすすめ情報