position:fixed;默认是相对浏览器窗口定位的,如果想要让一个元素相对一个div容器内固定定位,html部分如下:
<div id="parent" >
<div id="fixed_obj" style=" position:fixed; margin:0;color:#f00; ">
<div>要置顶的导航栏</div>
</div>
<p>cccccccccccccccccccc</p>
</div>
</body>```
需要让#fixed_obj元素在#parent容器内固定置顶,css样式如下:
```#parent{
width:60%; height:60%;
margin:50px auto;
border:1px solid #f00;
overflow-y:scroll;
}
#fixed_obj{
position:fixed;
margin:0; /*关键*/
color:#f00;
}```
所以,需要定位的元素除了position:fixed以外,需要通过margin来调距离,而不是left和top;
BUT......IE6、IE7(quirk模式)、IE8(quirk模式) 浏览器将 'position' 特性的 fixed 值当作错误值处理。从而导致使用固定定位的元素使用 'position' 的默认值 static。即这个元素在 此时 变成了普通流中的元素,这必然会导致布局错位等问题。
解决办法请参照:http://www.cnblogs.com/hooray/archive/2011/05/20/2052269.html