私は完全に水平なスクロールサイトを持っています、
TopNav(固定位置)
ナビ(固定位置)
コンテンツ(横スクロール)
フッター(固定位置)
すべてがうまく機能しているように見えますが、問題は、コンテンツが水平方向にスクロールするのに十分な大きさの場合、フッターが水平スクロールバーの後ろに配置されるため、いくつかのページで#footer {bottom:16px}または水平方向のスクロールバーを考慮に入れるためです。
私が問題を抱えているのは、異なるモニター解像度です。明らかに、コンテンツは水平方向にスクロールするか、ウィンドウサイズに基づいてスクロールしません。フッターを下部(または水平スクロールバーの上)に保つ方法はありますか?解像度やウィンドウサイズは重要ではありませんか?
多くの試行錯誤を繰り返した結果、私はこれが常に下にあるフッターの最善の解決策であることがわかりました。
HTML:
<div class="footer">
<div class="footer_contents"></div>
</div>
CSS:
.footer {
height:24px; // Replace with the height your footer should be
width: 100%; // Don't change
background-image: none;
background-repeat: repeat;
background-attachment: scroll;
background-position: 0% 0%;
position: fixed;
bottom: 0pt;
left: 0pt;
}
.footer_contents {
height:24px; // Replace with the height your footer should be
width: 1000px; // Visible width of footer
margin:auto;
}
<div id="container">
<div id="header"></div>
<div id="body"></div>
<div id="footer"></div>
</div>
CSS
html,
body {
margin:0;
padding:0;
height:100%;
}
#container {
min-height:100%;
position:relative;
}
#header {
background:#ff0;
padding:10px;
}
#body {
padding:10px;
padding-bottom:60px; /* Height of the footer */
}
#footer {
position:absolute;
bottom:0;
width:100%;
height:60px; /* Height of the footer */
background:#6cf;
}
そして、IE 6およびIE 5.5の場合の1つの単純なCSSルール:
#container {
height:100%;
}
私には2つの可能性があります。
1番目のオプションボディに常にスクロールバーを表示するように強制します。しかし、これは奇妙に見えるかもしれません。
body { overflow-x: scroll; }
2番目のオプションコンテンツコンテナーを常にフッターの上に置きます。これは、フッターの高さが固定されている場合に可能です。次に、フッターの上にスクロールバーが表示されます。
<div id="contentWrapper">
<div id="content">Here comes your content</div>
</div>
そしてここで私が今説明するCSS
body, html {
height: 100%;
overflow: hidden;
}
#contentWrapper {
overflow-x:auto;
overflow-y: hidden;
height: 100%;
margin-top: -16px; // add the footer height
}
#content {
padding-top: 16px; // add the footer height
width: 6000px;
}
#contentWrapper
は、スクロールバーの高さとフッターの高さにプラスのマージンが必要です。 #content
は上部のパディングと同じ値にする必要があるため、上部のコンテンツがページの外に出ることはありません。
私の最高のアイデアは、独自のスクロール可能なdivの一部として幅広いコンテンツを含めることです。フッターはコンテンツの下部の場所にとどまり、常に中央に表示されます。
スクロールバーをフッターの上に配置したくない場合は、divと一部のcssを使って空のdivをフッターのサイズの下に配置し、実際のフッターを上部にするなど、何かおかしいことができます。 (フッターの高さ)