あなたの質問では、虚偽の声明を出し続け、自分自身と矛盾しています(たとえば、スティッキーフッターについて話しているが、ページがスクロールしないことも暗示しています-すべての要素の高さが100%になるため)。それでも、私はあなたを助けようとします。
上記の理由から、以下の仮定を立てました。
- メイン領域 (ヘッダー、フッター、サイドバー、フレーム ヘッダー、フレーム ボディ) のサイズの合計が常に 100% になるようにしたい
- ブラウザをスクロールさせたくない
- コンテンツがはみ出す場合にサイドバーやフレーム本体をスクロールさせたい
300px
ブラウザ/ウィンドウのサイズが <=幅である場合、フレームなどが表示されないため、上記は不適切なサイト デザインにつながりbrowser/window height <= foot height + head height
ます。 、sidebar
、frame head
またはframe body
。
jQuery
そうは言っても、ここに 、html
、およびを使用した例がありcss
ます。
CSS
html, body{
margin:0; padding:0; border:0;
color:#fff;
}
#head{
width:100%;
background:#aaa;
}
#body{
width:100%;
}
#sidebar{
display:inline-block;
width:300px; height:100%;
background:#111;
vertical-align:top;
overflow:scroll;
}
#frame{
display:inline-block;
vertical-align:top;
height:100%;
}
#fhead{
width:100%;
background:#333;
}
#fbody{
width:100%;
background:#777;
overflow:scroll;
}
#foot{
position:fixed;
top:100%;
width:100%;
background:#aaa;
}
h1{margin:0; padding:10px;}
jQuery
function setSizes(){
var docWidth = $(window).width();
var docHeight = $(window).height();
var headHeight = $('#head').height();
var footHeight = $('#foot').height();
var bodyHeight = docHeight - headHeight - footHeight;
var fHeadHeight = $('#fhead').height();
$('#body').css({
height: bodyHeight
})
$('#sidebar').css({
height: bodyHeight
})
$('#frame').css({
width: docWidth - 300
})
$('#fbody').css({
height: bodyHeight - fHeadHeight
})
$('#foot').css({
"margin-top": -footHeight
})
}
$(function(){
setSizes();
var doit;
$(window).resize(function(){
setSizes();
setSizes();
})
})
HTML
<div id="head"><h1>Head Section</h1><br><br><br><br></div>
<div id="body">
<div id="sidebar"><h1>Side Bar</h1>
</div><div id="frame">
<div id="fhead"><h1>Frame Head</h1><br><br></div>
<div id="fbody"><h1>Frame Body</h1></div>
</div>
</div>
<div id="foot">
<h1>Foot Section</h1><br>
</div>
ノート
- 次の div 内に好きなコンテンツを入れることができます:
#head
, #sidebar
, #fhead
, #fbody
,#foot
- は、ウィンドウのサイズ変更時
jQuery
に関数を 2 回実行します。setSizes();
これは、使用可能な幅/高さに影響を与える可能性のあるスクロールバーを考慮するためです
overflow
に配置するコンテンツに応じて、他の要素に追加のルールを設定する必要がある場合があります。divs