完美解决CSS中position为fixed在IE6下无效的bug

本文提供两种方法解决IE6浏览器不支持CSS position:fixed的问题,包括纯CSS解决和JavaScript辅助实现。详细步骤和代码示例帮助开发者在IE6环境下实现元素的固定定位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

完美解决CSS中position为fixed在IE6下无效的bug

众所周知IE6不支持CSS属性position:fixed,这个CSS bug与IE6的双倍margin和不支持PNG透明等bug一样臭名昭著。

如何让position:fixed在IE6中工作?

第一种方法:纯CSS解决IE6的position:fixed的bug

html {
    _background-image:url(about:blank);  /*用浏览器空白页面作为背景*/
    _background-attachment:fixed;  /* IE6 确保滚动条滚动时,元素不闪动*/
}

#fixedDiv {
    width:960px; height:31px; z-index:100; /*设置浮动层次*/
    position:fixed; /* IE6以外的浏览器下定位*/
    top:50px; /* IE6以外的浏览器下定位*/
    _position:absolute;  /*IE6 用absolute模拟fixed*/
    _top:expression(documentElement.scrollTop+50+"px");  /*IE6 动态设置top位置为50px */
}

fixedDiv为要固定的元素的id。

这里只实现了IE6下CSS position垂直方向的fixed。若要实现水平方向的fixed,设置_left:expression(documentElement.scrollLeft + "px");

 

第二种方法 用JavaScript解决IE6的position:fixed的bug

<script language="javascript" type="text/javascript">
window.onload = function () {
        var n = 100; //top值
        var obj = document.getElementById("fixed");  //fixed为固定元素的id,获得position:fixed对象
        window.onscroll = function () {
                obj.style.top = (document.body.scrollTop || document.documentElement.scrollTop) + n + 'px';
        }
        window.onresize = function () {
                obj.style.top = (document.body.scrollTop || document.documentElement.scrollTop) + n + 'px';
        }
}
</script>

这段javascript代码也能解决IE6的position:fixed的bug。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值