您需要設置邊欄的高度。現在,您的側欄與您的文本塊一樣高,並在視口下方運行(但您看不到)。如果您將其高度設置爲100%(或其他),則邊欄將顯示滾動條,如果其所有內容不能一次顯示。
所以,你需要改變這一點:
div#fixed-div {
position: fixed;
left: 0;
top 80px;
width: 260px;
background-color: silver;
overflow-y: scroll;
}
要這樣:
div#fixed-div {
position: fixed;
left: 0;
top 80px;
width: 260px;
background-color: silver;
overflow-y: scroll;
height: 100%;
}
編輯:
如果你想最大的瀏覽器支持(甚至老的瀏覽器)的解決方案,你需要JavaScript。下面是依賴於jQuery的一個解決方案:
CSS:
* {
margin: 0;
padding: 0;
}
html, body {
height: 100%;
}
div#header-div {
height: 90px;
background-color: lime;
}
div#fixed-div {
position: fixed;
width: 260px;
background-color: silver;
overflow-y: scroll;
}
的JavaScript:
var bodyHeight = $('body').height();
var headerHeight = $('#header-div').height();
var sidebarHeight = bodyHeight - headerHeight;
$('#fixed-div').height(sidebarHeight);
工作的jsfiddle:http://jsfiddle.net/nH7xR/
請參閱在http://stackoverflow.com響應/ questions/15650278/how-to-set-fixed-position-element-height-to-reach-bottom-of-browser-window for a solution that does not require me to rest the html and body elements,or use jQuery。 – 2013-03-27 13:52:05
我喜歡'底:0;'技巧,我不知道你能做到這一點。感謝您指出!它在舊版瀏覽器中不起作用,順便說一下:http://stackoverflow.com/a/5070238/1064286 – 2013-03-27 16:53:27