手头一个项目中,要实现把一个浮层控制在浏览器窗口右下角,用”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 个评论:
IE6真是死而不僵
最近怎么样?好久不联系了。
又来看你了,也学习来了。
呵呵,我们的项目是禁止用CSS 表达式的,所以我的解决方案只有用检查鼠标移动的时间,用定时器来实现
之前我也遇到过类似的事情,最终我也是采用css的办法来解决的!IE6是个最大的bug