所以,我已经被这个问题困扰了一段时间,我似乎无法找到解决方案。
我正在尝试制作一个由(目前)4个不同内容区域组成的布局,如下所示:

我正在尝试做的事情
我正在尝试做以下事情:
简单解释:Content应该是页面上唯一可滚动的东西,footer如果内容适合页面,则在其后面,否则固定在底部。
详细解释:
- 修复
banner并mainMenu使其在页面滚动时永远不会移动。 - 使用页面进行
content滚动,以便:- 如果
content(andfooter) 适合页面,则不显示滚动。 - 如果需要滚动,
content则位于banner(未显示)的后面并且不再出现在其上方。 - 如果需要滚动,
content可以滚动到它的底线并且footer在可见区域中。
- 如果
- 应该做两
footer件事:- 如果
content并且footer适合页面,footer则应粘贴在页面底部content - 否则,
footer应固定在底部。
- 如果
我试过的
Fixingbanner和mainMenu是footer使用position: fixed(并相应地定位)固定的。父母div有overflow: hidden(这似乎不起作用)。
<div id='main'>
<div id='banner'>banner</div>
<div id='mainMenu'>mainMenu</div>
<div id='content'>.. some long content ..</div>
<div id='footer'>footer</div>
</div>
和
#main {
width: 960px;
height: auto;
margin: 40px auto;
overflow: hidden;
}
#main #banner {
width: 960px;
height: 100px;
position: fixed;
}
#main #mainMenu {
width: 230px;
height: auto;
display: inline;
float: left;
position: fixed;
top: 140px;
}
#main #content {
width: 720px;
height: auto;
display: inline;
float: right;
margin-top: 100px;
}
#main #footer {
width: 960px;
height: auto;
clear: both;
position: fixed;
bottom: 0;
}
问题
content如果页脚适合该区域,则
页脚不会跟随
横幅顶部的内容溢出

我真的更喜欢在 CSS 中(如果可能的话)并尽可能兼容(IE7+,所有其他主要浏览器)。现在真的很令人沮丧..任何帮助将不胜感激。