您可以尝试以下方法。
你的 HTML 是:
<div id="container">
<div id="header">The header...</div>
<div id="content">
<div id="messages">
<div class="message">example</div>
...
<div class="message">example</div>
</div>
<div id="input">
<div class="spacer">
<input type="text" />
</div>
</div>
</div>
</div>
应用以下 CSS:
html, body {
height: 100%;
}
body {
margin:0;
}
#header {
background:#333;
height: 50px;
position: fixed;
top: 0;
width: 100%;
}
#content {
position: absolute;
top: 50px;
left: 0;
right: 0;
bottom: 45px;
overflow-y: scroll;
}
#messages {
overflow: auto;
}
#messages .message {
height: 79px;
background: #999;
border-bottom: 1px solid #000;
}
#input {
position:fixed;
bottom:0;
left:0;
width:100%;
height: 45px;
}
#input .spacer {
padding: 5px;
}
#input input {
width: 100%;
height: 33px;
font-size: 20px;
line-height: 33px;
border: 1px solid #333;
text-indent: 5px;
color: #222;
margin: 0;
padding: 0;
}
参见演示:http: //jsfiddle.net/audetwebdesign/5Y8gq/
首先,将html
andbody
标记设置为 100% 的高度,这允许您参考视口高度。
您希望使用#header
将 固定在页面顶部position: fixed
,类似于您的页脚#input
。
关键是使用绝对定位在#content
页眉的下边缘和页脚的上边缘之间拉伸它,然后应用overflow-y: scroll
以允许它滚动内容(消息列表)。
注释
块
的源代码#input
可以放在#content
块之外。