フッターのサイズを事前に知らなくても、 CSS を使用してブラウザー画面の下部またはコンテンツの直後 (どちらが長いかによる) にフッターを貼り付ける方法はありますか?
現在、フッターとコンテナーの最小高さが 100% のコンテンツを保持するコンテナーで絶対配置を使用していますが、フッターを変更すると、コンテナーの下部にあるパディングを高さに合わせて変更する必要があることがわかります。 .
フッターのサイズを事前に知らなくても、 CSS を使用してブラウザー画面の下部またはコンテンツの直後 (どちらが長いかによる) にフッターを貼り付ける方法はありますか?
現在、フッターとコンテナーの最小高さが 100% のコンテンツを保持するコンテナーで絶対配置を使用していますが、フッターを変更すると、コンテナーの下部にあるパディングを高さに合わせて変更する必要があることがわかります。 .
http://pixelsvsbytes.com/blog/2011/09/sticky-css-footers-the-flexible-way/
概要:
ヘッダー、コンテンツ領域、およびフッターがあるサイトの場合:
設定html, body {height: 100%;}
ボディ(またはラッパーdiv)をに設定しますdisplay: table; width: 100%; height: 100%;
ヘッダー、フッター、およびコンテンツ領域を に設定しますdisplay: table-row;
。ヘッダーとフッターheight: 1px;
を指定し、コンテンツ領域を指定しますheight: auto;
ヘッダーとフッターの両方がコンテンツに合わせて拡張されます。コンテンツ領域は、そのコンテンツの大きい方、または使用可能なスペースに合わせて拡張されます。
HTML5 の未来に飛び込みたい場合は、flexboxを使用できます...
body {
display: flex;
min-height: 100vh;
flex-direction: column;
}
main {
flex: 1;
}
同じ質問に対する私のより詳細な回答:流動的なスティッキー フッターを作成する方法(完全な例: http://jsfiddle.net/n5BaR/ )
フレックスボックスで解決: http://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/
MDN の Flexbox とは: https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Flexible_boxes
これを試して!
フレックス採用!
高さ、JAVASCRIPT、テーブルの固定なし
コンテンツが増えると拡張し、ない場合は下部にくっつきます
注: IE 9 以下では動作しません
*{
margin: 0;
padding: 0;
}
html, body{
height: 100%;
}
body{
min-height: 100%;
display: flex;
flex-direction: column;
}
.content{
flex: 1;
background: #ddd;
}
<body>
<header>
Header
</header>
<div class='content'>
This is the page content
<br>
PS. Don't forget the margin: 0 and padding: 0 to avoid scrollbars (this can be also put into the body css)
</div>
<footer>
Footer
</footer>
</body>
このcssstickyfooterを見てください。どのブラウザでも問題なく動作します。
更新: これは 2010 年のものであり、現在の基準とは関係ない可能性があります