我有一长串元素,我想滚动它们,同时保持页面的其余部分在它周围保持静态。
<header>
<!-- the header is stuck to the top of the page -->
</header>
<ul class="list">
<!-- long list of stuff which should scroll -->
<li></li>
<li></li>
<li></li>
<li></li>
<!-- ... and so on, hundreds of elements -->
</ul>
<footer>
<!-- the footer is stuck to the bottom of the page -->
</footer>
现在,只要我在<ul>
.
ul.list {
overflow: auto;
height: 700px;
}
问题是,如果用户的浏览器高于700px + [header height] + [footer height]
thenul.list
就不会占用所有可用空间。列表和页脚之间有一个间隙。相反,如果用户的浏览器小于700px
,则某些列表元素会隐藏在页面底部之外。
如何使列表占据所有可用高度?
到目前为止我能想到的唯一方法是检测$header.offset()
and $footer.offset()
,减去它们以获得它们之间的距离并设置每次触发ul
窗口事件时的高度。resize
对于看起来应该是一个简单问题的问题,这似乎是一个过于复杂的解决方案。有没有更好的办法?
顺便说一句,这是我应用的样式,以使字体粘在页面底部。
footer {
// stick the footer to the bottom of the page
position: fixed;
bottom: 0px;
left: 0;
right: 0;
}