让IE6支持fixed的简单方法

由 axiu 撰写于 2010/06/29 | 92 条评论

最近感觉很忙,又有点闲时间来更新博客。折腾着折腾着发现一个小问题:在主题制作或者修改中一些元素要设置为随页面滚动的效果,通常的做法是加上fixed属性,或者干脆用js实现这个功能。

不过对于懒得去后台更新js文件的同学来说,这不是个好办法,或者对于还未引入js的同学,这更不是好办法。但是不用的话在IE6下会无效,这个经典到目前访问量的半数以上的浏览器版本是直接无视fixed的(当然还有其他若干问题,所以希望更新或扔掉该浏览器)。

关于这个问题的解决办法,我之前的做法一直是用_position:absolute来暂时修订,当然这么做产生的效果和想象中的差距很大。最近发现一个方法来修正IE6的fixed效果,如下:

_top:expression(documentElement.scrollTop + 数值 + "px")

也是一个简单的hack,对于不想引入JS又迫切希望使用fixed属性的人来说,确实是个好办法。

More:

Q:有时候好像使用document.body.scrollTop来获取滚动条滚动的长度,结果滚动后得到的也是0,为什么改用document.documentElement.scrollTop就可以了?

A:可以查看一下源代码,如果没有

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

这一句那么可以用document.body.scrollTop,否则只能用document.documentElement.scrollTop

原因:在标准w3c下,document.body.scrollTop恒为0,需要用document.documentElement.scrollTop来代替;document.documentElement.scrollTop中documentElement 对应的是 html 标签;document.body.scrollTop 中 body 对应的是 body 标签。

评论:92

  1. 学夫子
  2. 学夫子 10/07/03

    有时候我也想直接抛弃ie6,不管,但是好多用户仍然是使用的ie6,特别是那些单位学校。不得不考虑啊

  3. 天天天蓝
  4. 天天天蓝 10/07/03

    没太明白,有时间了帮我看个主题,我想改点小东西…… :mrgreen:

  5. 追忆永恒
  6. 追忆永恒 10/07/03

    iE6缺点不是一般的多,现在都直接用火狐了!

  7. 可乐
  8. 可乐 10/07/03

    用的人是挺多的.经常用到的PNG也要用JS来实现.

  9. 小雯子
  10. 小雯子 10/07/07

    正好前两天遇到这个问题,膜拜阿修

  11. 夏影残雪
  12. 夏影残雪 10/07/08

    :lol: 最简单的办法就是屏蔽之<( ̄ ﹌  ̄)@m

  13. 隐残影
  14. 隐残影 10/07/10

    :razz: 时间机器的主题!还有Fixed菜单上的NEXT可以自动跳转到下一篇日志! :roll:

  15. 雅丹博客
  16. 雅丹博客 10/07/22

    很强大 学习了!~

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

:razz:

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

RSS订阅