在你的問題中找到你繼續作出虛假陳述並且與自己相矛盾(例如,你正在談論粘性頁腳,但是你也意味着頁面不滾動 - 所有元素的高度總和爲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>
NOTES
- 你可以把你下面的div裏面喜歡的任何內容:
#head
,#sidebar
,#fhead
,#fbody
,#foot
- 的
jQuery
兩次運行setSizes();
功能上的窗口大小調整。這是考慮到你在divs
到底是什麼問題了哪些內容可能會影響現有的寬度/高度
overflow
規則等要素,具體取決於任何滾動?創建跨瀏覽器代碼不是微不足道的。 –嗯,我找不到一種方法在頁眉和頁腳內獲得#Sidebar 100%的高度 – Floris