似乎不可能仅使用 CSS/HTML 来获得这种“看起来不错”。正如Ruup所说或仅在一个方向上的固定位置所提到的,在 JS 上分层是一个不错的选择。
幸运的是,我找到了一种让它以某种方式工作的方法(不是那么漂亮):
//jsfiddle.net/MKEbW/5/
HTML(在正文标签内):
<div id="simulated-html">
<div id="footer">
<span>
<!-- Footer text here -->
</span>
</div>
<div id="simulated-body">
<!-- Your website here -->
</div>
</div>
CSS:
* { margin:0; padding:0; }
html {
font: 12px/1.5em Georgia;
}
p { padding: 5px; }
html, body {
height: 100%;
overflow: hidden; /* hide scrollbars, we create our own */
}
#simulated-html {
background: orange;
overflow-x: scroll; /* force horizontal scrollbars (optional) */
overflow-y: hidden; /* hide. we use the #simulated-body for it. */
position: relative; /* to align #footer on #simulated-html */
height: 100%;
}
#simulated-body {
overflow-y: scroll; /* force vertical scrollbars (optional) */
overflow-x: hidden; /* hide. we use the #simulated-html for it. */
height: 100%;
background: #eee;
/* use as a container */
width: 450px;
margin: 0 auto;
}
#footer {
position: absolute;
bottom: 0px; /* vertical align it to #simulated-html */
width: 100%;
background: red;
z-index: 99; /* always show footer */
color: white;
}
#footer span {
width: 450px;
margin: 0 auto;
background: green;
display: block;
}
似乎可以在 IE7+ 和现代浏览器中工作,通过 browserlab.adobe.com 进行测试。
在 Chrome 18 中使用滚动条、更小和更宽的视口进行了测试。
我建议对不支持的浏览器和/或 JS 解决方法进行后备。