在html中定位固定标题

时间:2012-06-11 06:23:06

标签: jquery html css html5 css3

我有一个固定位置的标题(动态高度)。

我需要将容器div放在标题下方。由于标题高度是动态的,我不能使用固定值作为上边距。

如何做到这一点?

这是我的CSS:

    #header-wrap {
    position: fixed;
    height: auto;
    width: 100%;
    z-index: 100
}
#container{ 
    /*Need to write css to start this div below the fixed header without mentioning top margin/paading*/
}

...和HTML:

<div id="header-wrap">
  <div id="header">
    <div id="menu">
      <ul>
      <li><a href="#" class="active">test 0</a></li>
      <li><a href="#">Give Me <br />test</a></li>
      <li><a href="#">My <br />test 2</a></li>
      <li><a href="#">test 4</a></li> 
      </ul>
    </div>
    <div class="clear">
    </div>
  </div>
</div><!-- End of header -->

<div id="container">
</div>

6 个答案:

答案 0 :(得分:54)

你的#container应该在#header-wrap之外,然后为#header-wrap指定一个固定的高度,之后为#container指定margin-top等于#header-wrap的高度。像这样:

#header-wrap {
    position: fixed;
    height: 200px;
    top: 0;
    width: 100%;
    z-index: 100;
}
#container{ 
    margin-top: 200px;
}

希望这是你需要的: http://jsfiddle.net/KTgrS/

答案 1 :(得分:6)

嘛!当我现在看到我的问题时,我意识到由于标题的动态高度,我不想提及固定边距值。

以下是我一直在使用的场景。

使用jQuery计算标题高度,并将其应用为上边距值。

var divHeight = $('#header-wrap').height(); 
$('#container').css('margin-top', divHeight+'px');

<强> Demo

答案 2 :(得分:3)

body{
  margin:0;
  padding:0 0 0 0;
}
div#header{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:25;
}
@media screen{
 body>div#header{
   position: fixed;
 }
}
* html body{
  overflow:hidden;
} 
* html div#content{
  height:100%;
  overflow:auto;
}

答案 3 :(得分:1)

我认为你的标题是固定的,因为你希望它保持在页面的顶部,即使用户向下滚动,但你不希望它覆盖容器。设置position: fixed会从页面的线性布局中删除元素,因此您需要将“next”元素的上边距设置为与标题的高度相同,或者(如果适用于任何内容)你不想这样做的原因),把占位符元素放在页面流中占用空间,但会出现在标题出现的位置下面。

答案 4 :(得分:1)

position :fixed与其他布局不同。 在fixed position header之后,请注意,您必须为margin-top div设置content

答案 5 :(得分:0)

将#container div 顶部设为

#container{ 


 top: 0;



}