IE6下的fixed问题解决方法(全)

固定在top

.outer_wrap{
width:500px; 
height:200px; 
background:#036; 
position:fixed; 
top:250px; 
left:50%; 
margin-left:-250px;
}

.outer_wrap{ 
_position:absolute;
_top:expression(eval(document.documentElement.scrollTop)+250)
}//其中250数字即top:npx

*html{
background-image:url(about:blank);
background-attachment:fixed;
}//去除闪动。
固定在left
.outer_wrap{ 
width:500px; 
height:200px; 
background:#036; 
position:fixed; 
top:250px; 
left:0;
}

.outer_wrap{ 
_position:absolute;
_top:expression(eval(document.documentElement.scrollTop)+250)
}//其中250数字即top:npx

*html{
background-image:url(about:blank);
background-attachment:fixed;
}//去除闪动

固定在right

.outer_wrap{ 
width:500px; 
height:200px; 
background:#036; 
position:fixed; 
top:250px; 
right:0;
}

.outer_wrap{ 
_position:absolute;
_top:expression(eval(document.documentElement.scrollTop)+250)
}//其中250数字即top:npx

*html{
background-image:url(about:blank);
background-attachment:fixed;
}//去除闪动

固定在底部

.outer_wrap{ 
width:500px; 
height:200px; 
background:#036; 
position:fixed; 
bottom:0; 
right:0;
}

.outer_wrap{ 
_position:absolute;
_top:expression(documentElement.scrollTop + documentElement.clientHeight-this.offsetHeight-250);
}//其中250数字即bottom:npx

*html{
background-image:url(about:blank);
background-attachment:fixed;
}//去除闪动
Tip:有的去除闪动会写作*html body{background-image:url(about:blank);background-attachment:fixed;}
这样子小心检查下页面背景图片是否会因为去除闪动在某种特殊情况下被清除

IE 6 position不支持fixed属性的解决方案

IE7已经支持position:fixed了,而IE6却不支持,解决这个问题的办法如下:
现在有一个元素的id是element,它需要实现fixed效果,我们既想要它在正常的浏览器下使用,也想要它在IE 6下正常工作,那么可以使用CSS hack:
#element {
position: fixed;
top: 450px; /* 其他浏览器下定位,在这里可设置坐标*/
_position: absolute; /*IE6 用absolute模拟fixed*/
/*IE6 动态设置top位置*/
_top: expression(eval(document.documentElement.scrollTop) +  450); 
}
这样就可以实现这个元素距离顶部450像素固定,你还可以添加下面的代码来实现去除页面抖动的效果:
*html body{
background-image:url(about:blank);
background-attachment:fixed;
}
如果你想要改变expression的内容,请查看博文《js、jQuery修改CSS中expression()的方法》。