IE6的position:fixed

手头一个项目中,要实现把一个浮层控制在浏览器窗口右下角,用”position:fixed”来控制最合适不过了。

但万恶的IE6不支持这个属性,之前采用过的方法有:将滚动条转移到body上,使用绝对定位控制浮层位置;使用JS实时判断滚动并设置浮层位置。

第一种方法局限性太大,页面中有其他绝对定位元素会受到影响;第二种方法需要在页面里加定时器,资源开销和时间成本都有点高。

后来在同事小卓的启发下,使用CSS表达式完成了IE6的兼容,代码如下:

_position:absolute;
_top:expression(document.documentElement.clientHeight - 213 + (e=document.documentElement.scrollTop) +'px');
/*
document.documentElement.clientHeight : 浏览器串口高度
200 : 浮层高度
(e=document.documentElement.scrollTop) : 滚动条高度
 */

CSS表达式虽然方便,但浏览器资源损耗仍然很大,要根据具体应用场合决定,“一切皆权衡”,哈~

5 个评论:

  1. Posted 2010年07月2日 at 3:13 下午 | Permalink

    IE6真是死而不僵

  2. gaomeng
    Posted 2010年07月9日 at 5:27 下午 | Permalink

    最近怎么样?好久不联系了。

  3. Posted 2010年07月10日 at 11:30 上午 | Permalink

    又来看你了,也学习来了。

  4. Posted 2010年07月13日 at 11:34 上午 | Permalink

    呵呵,我们的项目是禁止用CSS 表达式的,所以我的解决方案只有用检查鼠标移动的时间,用定时器来实现

  5. Posted 2011年05月30日 at 2:52 下午 | Permalink

    之前我也遇到过类似的事情,最终我也是采用css的办法来解决的!IE6是个最大的bug

发表评论

*
*

文明评论,共同进步