CSSだけの解決策があるかもしれませんが、ここにjQueryの解決策があります。メニューの下のコンテンツは、スクロールバーなしで残りのスペースを埋めます。
HTMLマークアップは次のようになります。
<div id="menu">SOMETHING IN MENU</div>
<div class="content">
<div class="part1"></div>
<div class="part2"></div>
<div class="part3"></div>
<div class="part4"></div>
</div>
CSS:
body,html{padding:0; margin:0;height:100%;width:100%;}
#menu {
position: fixed;
top: 0;
background: blue;
height: 50px;
width: 100%;
}
.part1 {
width:50%;
height: 50%;
float: left;
background: purple;
}
.part2 {
width:50%;
height: 50%;
float: left;
background: red;
}
.part3 {
width:50%;
height: 50%;
float: left;
background: green;
}
.part4 {
width:50%;
height: 50%;
float: left;
background: silver;
}
.content{
width: 100%;
position: relative;
}
jQuery:
var height = $(document).height();
var menu_height = $("#menu").height();
var content_height = height - menu_height;
$(".content").css("height", content_height);
$(".content").css("top", menu_height);
デモ
最も重要な部分はjQueryです。まず、ドキュメントの高さ(html)を取得し、次にメニューの高さを取得する必要があります。次に、ドキュメントの高さからメニューの高さを差し引くと、コンテンツの高さが得られます。重複を避けるために、同じ結果をコンテンツの一番上の位置に適用します。