6

我正在寻找一种在页面顶部有一个固定元素的方法,该元素会根据页面宽度改变高度,并且还会将下面的内容推回。到目前为止,我已经管理了一些事情,但我希望有一个更清洁的解决方案。我所做的是拥有两个具有相同内容的顶级元素。一个设置为固定位置,另一个设置为相对位置,但没有不透明度......

#top-1 { position: fixed; background-color:#fff}
#top-2 {position: relative; opacity:0;}
#content { background-color: #FFF; background-color:#CCC }

我在这里设置了一个示例http://jsfiddle.net/q3G7F/6/ 它完全按照我的需要工作,但也许有人有更好的主意?
谢谢,

4

2 回答 2

3

您可以使用一个小的 jQuery(或 javascript)片段来做到这一点。
将 CSS 更改为:

#top-1 { position: fixed; top: 0; background-color:#fff}
#content { background-color: #FFF; background-color:#CCC }​

在页面底部添加此脚本(需要 jQuery)。这应该为内容添加上边距并为您的顶部元素腾出空间。

<script>
    $(document).ready(function() {
       $('#content').css('margin-top', $('#top-1').height() + 'px');
    }); 
</script>

这是一个工作示例:http: //jsfiddle.net/g6CnA/

更新

您还需要监听窗口调整大小事件并在顶部元素的高度发生变化时调整边距。

$(document).ready(function() {
    $('#content').css('margin-top', $('#top-1').height() + 'px');   
}); 

$(window).resize(function() {
    $('#content').css('margin-top', $('#top-1').height() + 'px');        
});           

​</p>

jsFiddle:http: //jsfiddle.net/g6CnA/1

于 2012-11-09T13:48:49.563 回答
0

#top-1在您的 CSS 中,如果您在和的父元素上设置显式高度(以 px 或任何非 % 为单位)#content,您应该能够将height#top-1和 的margin-top设置#content为相同的百分比。这将为您提供所需的行为,但此特定方法在您可以显式设置其父级的高度时才有效。

于 2012-11-09T14:36:51.737 回答