主にCSSを使用してこれを解決しました。受け入れられた回答に対するこれの利点は、ページが表示された後にページサイズが変更された場合(ブラウザのサイズ変更、向きの変更、または折りたたみ/アコーディオンセクションなどのより単純なケースなど)を処理できることです。また、Javascript コードがはるかに少なく、レイアウト計算もありません。
CSS:
html, body {
margin: 0;
padding: 0;
height: 100%;
}
[data-role=page] {
min-height: 100%;
position: relative;
}
[data-role=content] {
padding-bottom: 40px; /* based on how tall your footer is and how much gap you want */
}
[data-role=footer] {
position: absolute;
bottom: 0;
width: 100%;
height: 40px /* this can be configurable, or omitted, as long as the above padding-bottom is at least as much as the height of the footer is */
}
絶対フッターが原因で、jQuery Mobile ページ遷移でフッターがちらつき (特に「スライド」遷移) が表示されたため、次の少量の Javascript を追加しました。
$(document).live( 'pagebeforechange', function() {
// hide footer
$('[data-role=footer]').hide();
});
$(document).live( 'pagechange', function() {
// show footer
$('[data-role=footer]').show();
});