ページの残りの部分を静的に保ちながらスクロールしたい要素の長いリストがあります。
<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]
問題は、ユーザーのブラウザがそれよりも高い場合、ul.list
使用可能なスペースのすべてを占有しないことです。リストとフッターの間にギャップがあります。逆に、ユーザーのブラウザが。よりも小さい場合700px
、一部のリスト要素はページの下部に表示されません。
リストに利用可能なすべての高さを含めるにはどうすればよいですか?
これまで私が考えることができる唯一の方法は、とを検出し$header.offset()
、$footer.offset()
それらを減算してそれらの間の距離を取得しul
、ウィンドウresize
イベントがトリガーされるたびに高さを設定することです。これは、単純な問題であると思われるものに対する過度に複雑な解決策のように思われます。もっと良い方法はありますか?
ちなみに、これは私がフォッターをページの下部に貼り付けるために適用したスタイリングです。
footer {
// stick the footer to the bottom of the page
position: fixed;
bottom: 0px;
left: 0;
right: 0;
}