この質問は、さまざまな形で何億回も回答されているようですが、私にとって有効な回答はまだ見つかりません。簡単に言えば、私はこのレイアウトを持っています:
<body>
<div class="wrapper">
<div class="header"></div>
<div class="body"></div>
<div class="footer"></div>
</div>
</body>
wrapper
ブラウザーの水平方向の中央に配置し、ブラウザーの高さの 100% を埋めたいと思っています。囲まれた各<div>
要素の高さは固定されており、その高さの合計がブラウザ ウィンドウの高さよりも大きくなることがよくあります。この場合、必要なレイアウトが得られます。
ただし、ブラウザ ウィンドウの高さが、囲まれた<div>
要素を合わせた高さよりも大きい場合 (たとえば、iMac または縦向きの iPhone の場合のwrapper
ように) footer
、この下のウィンドウは<body>
背景です。wrapper
背景と背景の<body>
色が違うので、これが事実であることは明らかです。
wrapper
この高さがコンテンツの合計高さよりも大きいか小さいかに関係なく、ブラウザの高さを埋めるように、これに対する CSS ソリューションを持っている人はいますか?
編集:答え:
答えは、以下の答えと私がちょうど今遭遇したことの組み合わせでした: CSS で、これを行います:
body, html {
height: 100%;
margin: 0px auto;
padding: 0px auto;
}
.wrapper {
height: auto; /* These two lines were the key. */
min-height: 100%
/*overflow: hidden;*/ /* Do not use this, it crops in small browsers. */
margin: 0px auto;
padding: 0px auto;
}