position:fixed 在ie8下的兼容性处理(附带ie8以下不透明度兼容)

1、解决fixed兼容性核心代码:

.ie{
            _position: absolute;
            _clear: both;
            _top:expression(eval(document.compatMode &&
               document.compatMode=='CSS1Compat') ?
               documentElement.scrollTop
               +(documentElement.clientHeight-this.clientHeight) - 1
               : document.body.scrollTop
               +(document.body.clientHeight-this.clientHeight) - 1);
        }

原理:利用css表达式,将js代码插入到css中,但因expression存在较多的缺陷,目前已不提倡使用,可直接利用js控制。

2、解决不透明度兼容性核心代码:

            /*支持rgba的浏览器*/
            background: rgba(0,0,0,.5);
            /* older safari/Chrome browsers */
            -webkit-opacity: 0.5;
            /* Netscape and Older than Firefox 0.9 */
            -moz-opacity: 0.5;
            /* Safari 1.x (pre WebKit!) 老式khtml内核的Safari浏览器*/
            -khtml-opacity: 0.5;
            /* IE9 + etc...modern browsers */
            opacity: .5;
            /* IE 4-9 */
            filter:alpha(opacity=50);
            /*This works in IE 8 & 9 too*/
            -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
            /*IE4-IE9*/
            filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);

完整demo:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>fixed在ie下的兼容处理</title>
    <style>
        .ie{
            _position: absolute;
            _clear: both;
            _top:expression(eval(document.compatMode &&
               document.compatMode=='CSS1Compat') ?
               documentElement.scrollTop
               +(documentElement.clientHeight-this.clientHeight) - 1
               : document.body.scrollTop
               +(document.body.clientHeight-this.clientHeight) - 1);
        }
        .fixed{
            position: fixed;
            width: 200px;
            height: 200px;
            left:50%;
            top:0;
            background:#000;
            /*支持rgba的浏览器*/
            background: rgba(0,0,0,.5);
            /* older safari/Chrome browsers */
            -webkit-opacity: 0.5;
            /* Netscape and Older than Firefox 0.9 */
            -moz-opacity: 0.5;
            /* Safari 1.x (pre WebKit!) 老式khtml内核的Safari浏览器*/
            -khtml-opacity: 0.5;
            /* IE9 + etc...modern browsers */
            opacity: .5;
            /* IE 4-9 */
            filter:alpha(opacity=50);
            /*This works in IE 8 & 9 too*/
            -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
            /*IE4-IE9*/
            filter:progid:DXImageTransform.Microsoft.Alpha(Opacity=50);
        }
        p{
            margin:50px;
            height: 200px;
        }
    </style>
</head>
<body>
    <p>测试行测试行测试行测试行测试行测试行</p>
    <p>测试行测试行测试行测试行测试行测试行</p>
    <p>测试行测试行测试行测试行测试行测试行</p>
    <p>测试行测试行测试行测试行测试行测试行</p>
    <p>测试行测试行测试行测试行测试行测试行</p>
    <p>测试行测试行测试行测试行测试行测试行</p>
    <div class="fixed ie"></div>
</body>
</html>

参考:https://www.cnblogs.com/muguaworld/archive/2011/11/13/2247180.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值