ie6使用expression模拟fixed定位

 

<!doctype html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <title>Document</title>

    <style>

    html{

        _background:url(about:blank); /* 阻止IE6中闪动 , 把空文件换成about:blank , 减少请求 */

    }

    /* 固定定位图层 */

    .fixed {

        position:fixed;

        _position: absolute;

        width: 200px;

        height: 200px;

        background: red;

        top:0;

        left: 0;

        _top:expression(documentElement.scrollTop+documentElement.clientHeight-this.offsetHeight);

        _left:expression(documentElement.scrollLeft+documentElement.clientWidth-this.offsetWidth);

    }

    </style>

</head>

<body>

    <div class="fixed"></div>

    <div style="height:1500px"></div>

</body>

</htm>

 

IE5 及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固有的属性, 也可以是自定义属性。就是说CSS属性后面可以是一段Javas cript表达式,CSS属性的值等于Javas cript表达式计算的结果。

 

以top为例:

documentElement.scrollTop   页面滚动条“卷”起来的高度值

documentElement.clientHeight  页面实际高度,包括padding

this.offsetHeight  元素实际高度,包括padding,scrollbar,border

documentElement.scrollTop+documentElement.clientHeight-this.offsetHeight = bottom为0时,如果用top来实现应当取多少值

 

top:0; = _top:expression(documentElement.scrollTop);

bottom:0; = _top:expression(documentElement.scrollTop+documentElement.clientHeight-this.offsetHeight);

left:0; = _left:expression(documentElement.scrollLeft);

right:0; = _left:expression(documentElement.scrollLeft+documentElement.clientWidth-this.offsetWidth);

 

注:尽量避免使用这种方式,因为这会产生大量计算,计算量轻松过万,对浏览器性能损耗很大,浏览器极容易死掉。

 

转载于:https://www.cnblogs.com/k13web/p/4139610.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值