Dường như không thể làm được điều này "trông ổn" chỉ với CSS/HTML. Như đã đề cập từ Ruup hoặc Fixed position in only one direction, phân lớp trên JS cho nó, là một lựa chọn tốt.
May mắn thay, tôi tìm thấy một cách để làm cho nó hoạt động bằng cách nào đó (không phải là đẹp): http://jsfiddle.net/MKEbW/5/
HTML (bên trong cơ thể-tag):
<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;
}
Dường như hoạt động trong trình duyệt IE7 + và trình duyệt hiện đại, được kiểm tra qua browserlab.adobe.com.
Thử nghiệm với thanh cuộn, nhỏ hơn và khung nhìn rộng hơn trong Chrome 18.
Tôi đề nghị một dự phòng cho các trình duyệt không có khả năng và/hoặc một workaround JS.
Nguồn
2012-06-05 00:43:27
Tất cả những người đọc này xin vui lòng lưu ý, nó làm việc, tuy nhiên bạn phải có jQuery liên kết trong file '.html' của bạn cho nó hoạt động. –