对于 IE6 也可以使用纯 CSS 来实现 position:fixed 的效果。直接上代码吧。
先是结构。

<div class="container">
    我是IE6,使用 absolute 模拟 fixed.</br>
    这里多多复制几个,效果明显。
</div>
<div class="fixed"></div>

然后是 CSS。

body {
    height:100%;
    overflow-y:auto;
    padding:0px;
    margin:0px;
}
.container {
    height:1800px;
    background:#CCC;
}
.fixed {
    position:fixed;
    top:50px;
    left:50px;
    background:red;
    height:50px;
    width:50px;
}

还有对于 IE6 来说,加一个单独的样式

<!--[if lte IE 6]>
     <style type="text/css">
         html {overflow-x:auto; overflow-y:hidden;}
         .fixed {
             position:absolute;
         }
     </style>
 <![endif]-->

原理就是对于 body 设置高度 100%,html 垂直方向上,超出高度给隐藏掉。然后里面的内容自己滚动,而 absolute 的相对于浏览器窗口的话,因为浏览器窗口就那么大,又不滚动,所以 absolute 看起来就 fixed 了。

但是这个有个问题,就是 所有设置了 absolute 和 relative 的元素,都会表现为 fixed 的,所以还是有副作用的。不过可以用来做遮罩层。

例子可以使用 IE6 浏览器访问。