これが私の実際の例です:
http://jsfiddle.net/UGhKe/2/
CSS
#body {
height: 200px;
background: black;
width: 100%;
}
.header {
position: fixed;
top: 0;
background: #369;
z-index: 1;
width: 100%;
height: 5em;
}
.content {
position: absolute;
top: 5em;
overflow: hidden;
height: 1000px;
background: #936;
z-index: 0;
width: 100%;
}
.footer {
position: fixed;
bottom: 0;
background: #396;
width: 100%;
}
.large {
font-size: 120%;
padding: 2em;
}
HTML
<div id="body">
<div class="header">
<div class="large">Header</div>
</div>
<div class="content">
Content, you should be able to see this when you scroll to top.
</div>
<div class="footer">
<div class="large">Footer</div>
</div>
</div>
上部をスクロールするとコンテンツがヘッダーの下に配置されるようにします(ただし、スクロールダウンするとヘッダーの下に非表示になります)-これは正常に機能します...
ただし、top: 5emを削除して、「ヘッダーの現在の高さを継承する」などを使用する必要があります-JSなしで可能ですか?
JS なしでは本当に不可能な場合は、JS を使用できますが、純粋な CSS で解決策を見つけたいと思います。
編集:
top: 5emを使用できない理由は、ヘッダーの高さが固定されていないためです。(ロゴ用の) 画像がテキスト内で使用され、max-width に設定されます。 100% にすると、iPhone の適切な幅に縮小され、iPad などではあまり拡大しません。