[HTML教程] 详解解读IE6中的position:fixed问题

[复制链接]
查看722 | 回复7 | 2020-9-16 07:47:10 | 显示全部楼层 |阅读模式
这篇文章主要介绍了详解IE6中的position:fixed问题与随滚动条滚动的效果的相关资料,希望通本文能帮助到大家,需要的朋友可以参考下

详解IE6中的position:fixed问题与随滚动条滚动的效果

前言:

在《【jQuery】兼容IE6的滚动监听》(点击打开链接)提及到解决IE6fixed问题,具体是要引入一个js文件,还要声明一条脚本就为这个p声明fixed定位去解决,起始这样很不好啊。引入的Javascript不好管理之余,还要在head声明引入javascript,之后又要给这个p声明一个id,之后又要在脚本出弄一条声明,实在是烦死了。

使用position:fixed无非是想做出如下的效果。

基本上position:fixed是在IE7以上的所有浏览器都是没有问题的:

IE8:

野狐禅FireFox:

然而由于IE6中直接就没有position:fixed属性,要做出如下的效果:

只能利用position: absolute;加一段在css样式中执行的javascript脚本去解决。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
  <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <title>Untitled Document</title> 
    <style type="text/css">     
      .fixedbox { 
        background: #69C; 
        height: 60px; 
        width: 100px;         
        position: fixed; 
        bottom: 100px; 
        /*IE6实现position: fixed;*/ 
        /*等价于position: fixed;虽然代码好长,但是根本就不用管*/ 
        _position: absolute;         
        _top: expression(eval( 
        document.documentElement.scrollTop + document.documentElement.clientHeight-this.offsetHeight- 
        (parseInt(this.currentStyle.marginTop,10)||0)- 
        (parseInt(this.currentStyle.marginBottom,10)||0))); 
        /*等价于position: fixed;虽然代码好长,但是根本就不用管*/ 
        _margin-bottom:100px;/*设置位置,不要用bottom,而是改用margin-bottom,margin-xx来实现*/ 
      } 
    </style> 
  </head> 
  <body> 
    <p style="float:left;width:80%;min-height:100px;"> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p> 
      <p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p><p>sss</p>    
    </p> 
    <p style="float:left;width:20%;min-height:100px;"><p class="fixedbox"></p></p> 
    <p style="clear:both"></p>     
  </body> 
</html>

上述代码,对于IE6的样式,前面都加上了_,_的部分是IE6特定的重写样式声明,具体见《【CSS】关于CSS样式中的!important、*、_符号》(点击打开链接)

而实际上,在IE6中,以下的CSS:

.fixed{ 
  position: absolute;        
  top: expression(eval( 
    document.documentElement.scrollTop + document.documentElement.clientHeight-this.offsetHeight- 
    (parseInt(this.currentStyle.marginTop,10)||0)- 
    (parseInt(this.currentStyle.marginBottom,10)||0))); 
}

等价于其它浏览器的:

.fixed{ 
  position: fixed; 
}

当然IE6中实现position:fixed的CSS可能在某些浏览器中不正常,因此在各个样式前面补上一条下划线_,表示仅在IE6中执行。

同时IE6应有的如上样式之后,不要像其它浏览器用right,top,left,bottom去定位,而是用margin-bottom,margin-left,margin-right去设置被position:fixed的p的位置,

这里调节p的位置的时候还需要注意,由于上述的兼容IE6的CSS利用到top的属性,所以设置margin-top是不管用,如果你要设置这个p在浮动的时候,离浏览器的顶部是多少的话,你应该这样写:

.fixed{ 
  /*IE6实现position: fixed;*/ 
  _position: absolute;         
  _top: expression(eval(document.documentElement.scrollTop)); 
  _margin-top:100px; 
}

这里关于_top的代码之所以短了这么多,是因为无须用document.documentElement.clientHeight来获取浏览器显示窗口大小。

而-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)一切是为了微调更加精确,如果你不想要也可以不加,仅仅是有一点视觉效果而已。

再者,上述的代码,大家可以看到,关于fixedbox这个东西,我并没有设置其right,left,是因为,我想让其在随滚动条滚动的时候,依旧能够保持父级p的float:left属性。

就是,右边的蓝色色块,与左边一大堆sss,依旧是80%与20%的分割。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JavaScript在IE9之前版本中内存泄露问题(详细总结)

JavaScript hasOwnProperty() 函数(图文教程,附有代码示例)

JQuery,Extjs,YUI,Prototype,Dojo 等JS框架的区别和应用场景(实用技巧)

以上就是详解解读IE6中的position:fixed问题的详细内容,更多请关注爱上源码网其它相关文章!

  • 微信
  • 分享
  • 相关标签:position fixed ie
  • 本文原创发布爱上源码网,转载请注明出处,感谢您的尊重!
    • 上一篇:前端获取http状态码400的返回值实例_基础教程
    • 下一篇:详解解读CSS样式中的!important、*、_符号

    相关文章

    相关视频

    • 奇妙的 CSS shapes(CSS图形)
    • IE、火狐、谷歌浏览器下兼容统一select样式
    • 神奇的 conic-gradient 圆锥渐变
    • 利用html实现一个三级菜单
    • 详解解读IE6中的position:fixed问题
    • CSS Positioning(定位)
    • CSS Positioning(定位)
    • 定位(Position)
    • CSS Positioning(定位)
    • jquery宽高演示之offset和position
    本文有爱上源码下载完入驻作者发布,如果对您版权造成侵害,可以联系本站站长管理进行维权删除,本站收到维权24小时内进行处理,谢谢您关注23ym.cn! 本站分享大量程序员技术文章以及对编程开发的初级入门教程,包括图文讲解笔记和高清视频下载~
    回复

    使用道具 举报

    123457108 | 2021-7-30 19:54:03 | 显示全部楼层
    悟空源码太厉害,资源真多!
    回复

    使用道具 举报

    紫色爱玫瑰咎 | 2021-11-3 09:06:08 | 显示全部楼层
    很不错的资源站
    回复

    使用道具 举报

    123457242 | 2022-3-8 05:06:36 | 显示全部楼层
    这个下载站资源真齐全
    回复

    使用道具 举报

    马宝清马宝清 | 2022-6-1 04:38:12 | 显示全部楼层
    很不错的资源站
    回复

    使用道具 举报

    看不清从bm | 2022-6-2 03:28:22 | 显示全部楼层
    站长真良心,这么大的资源站都是免费下载
    回复

    使用道具 举报

    penguinzhuyun | 2022-6-5 04:26:44 | 显示全部楼层
    我是来白嫖悟空源码的资源的!
    回复

    使用道具 举报

    auqsio7413820 | 2022-7-27 08:36:51 | 显示全部楼层
    支持悟空源码,越来越好
    回复

    使用道具 举报

    陈辞滥调 | 2024-3-18 15:41:43 | 显示全部楼层
    这个下载站资源真齐全
    回复

    使用道具 举报

    方方圆圆272 | 2024-3-20 00:39:57 | 显示全部楼层
    厉害了,悟空源码资源多教程多!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则