1

这是我的工作示例: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的原因是因为标题没有固定的高度 - 将在文本内部使用图像(用于徽标),并将其设置为最大宽度: 100% 以便它缩小到适合 iPhone 的宽度,并且不会在 iPad 上扩展太多。

4

2 回答 2

1

看看这是否适合你。http://jsfiddle.net/UGhKe/3/

我添加了另一个div具有相同height但“非固定”的内容来模拟您的固定标题。

HTML

<div id="body">
    <div id="blockHeader"></div>
    <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>

CSS

html, body { margin:0;  padding:0; }

#blockHeader 
{ 
    width:100%;
    height: 5em;
}

.content {
    position: absolute;
    overflow: hidden;
    height: 1000px;
    background: #936;
    z-index: 0;
    width: 100%;
}
于 2013-02-26T19:50:48.130 回答
0

您可以使用变量来做到这一点(为此使用 SASS 或 LESS)。看看

代码:

$headerContentVariable: 5em;

#body {
    height: 200px;
    background: black;
    width: 100%;
}
.header {
    position: fixed;
    top: 0;
    background: #369;
    z-index: 1;
    width: 100%;
    height: $headerContentVariable;
}
.content {
    position: absolute;
    top: $headerContentVariable;
    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;
}
于 2013-02-26T19:52:15.593 回答