经过多次测试,原来不只在IE6下,在IE7、IE8浏览器下,若是文档使用的是怪异(quirk)模式也会导致这个问题。这也难怪,当IE7、8使用怪异模式时,渲染引擎将以接近IE6的渲染模式来解析CSS。最后,我得出了以下结论:

   IE6、IE7(quirk模式)、IE8(quirk模式) 浏览器将 'position' 特性的 fixed 值当作错误值处理。从而导致使用固定定位的元素使用 'position' 的默认值 static。即这个元素在 此时 变成了普通流中的元素,这必然会导致布局错位等问题。

  解决方案:   

  在 IE6、IE7(quirk模式)、IE8(quirk模式)中为固定定位元素设置 '_position:absolute',再通过 JavaScript 脚本或者 CSS Expression 动态设置其偏移量,但是我发现只能实现在最底部和最顶部固定。要想设置具体的位置还需要配合_margin。

使元素固定在浏览器的顶部

代码如下:

#top {
_position: absolute;
_bottom: auto;
_top: expression(eval(document.documentElement.scrollTop));
}

使元素固定在浏览器的底部

代码如下:


#bottom {
_position: absolute;
_bottom: auto;
_top: expression(eval(document.documentElement.scrollTop+document.documentElement.clientHeight-this.offsetHeight-(parseInt(this.currentStyle.marginTop,10)||0)-(parseInt(this.currentStyle.marginBottom,10)||0)));
}

  这两段代码只能实现在最底部跟最顶部,你可以使用 _margin修改其中的数值控制元素的位置。

  看到这里,你一定以为已经完事了。NO!还有bug:被固定定位的元素在滚动滚动条的时候会出现一闪一闪的情况。解决这个问题的办法是在 CSS 文件中加入:

代码如下:

* html{
background-image:url(about:blank);
background-attachment:fixed;
}

或者:

代码如下:


body {
_background-attachment:fixed;
_background-image:url(about:blank);
}

  当然,也可以用吧javascript方法解决,不过有点大材小用:

代码如下:


window.onresize = window.onscroll = function(){
//code
}; 

IE6浏览器不支持固定定位(position:fixed)解决方案相关推荐

  1. 跨浏览器的CSS固定定位{position:fixed}

    不知道您是否留意了,浏览本站时,浏览器右下角有一个标着top的黑色直角三角形,可以点击它返回到正在浏览的网页页眉.当滚动网页时,它的位置一直没有任何改变,您感觉它怎么样?这就是通过CSS的定位属性{p ...

  2. html定位 浏览器兼容,IE6浏览器不支持固定定位(position:fixed)解决方案

    今天在学习的时候,突然发现在IE6浏览器下,position:fixed不管用了: 复制代码代码如下: New Document 正常普通流元素 position:fixed元素 上面的代码在IE6中 ...

  3. position属性:绝对定位position: absolute;相对定位 position: relative;固定定位 position: fixed;

    position 属性: position常见的定位模式: 定位模式 描述 是否脱离文档流 移动模式 定位偏移属性 static 默认属性 对象遵循常规流 不移动 不移动 relative 相对定位 ...

  4. CSS 固定定位 position fixed

    简单描述:固定定位是将某个元素固定在浏览器的某个确定的位置,不随滚动条的移动而变化: 注意:固定定位的位置是  相对当前浏览器窗口  的: 代码示例: 1.我们先在页面中输出一个标准情况下的 div ...

  5. 关于固定定位position: fixed;和横向滚动overflow-x: scroll;无法同时使用的问题

    在做项目时遇到一个功能是要把某个盒子固定在底部,并且是要横向滑动的,发现position: fixed;和overflow-x: scroll;同时使用无效,现记录一下解决方法 <style&g ...

  6. 解决固定定位position: fixed;变成了绝对定位随屏幕滚动的问题

    在一次vue项目开发中发现按钮设置成固定定位后,依旧随屏幕滚动,变成了相对定位的效果. 查阅资料后发现: 父级元素设置有效的transform属性会导致子元素固定变成绝对元素, 此时会导致子元素和父级 ...

  7. 华为手机浏览器不支持PUT提交方式的解决方案

    华为手机浏览器不支持PUT提交方式的解决方案 参考文章: (1)华为手机浏览器不支持PUT提交方式的解决方案 (2)https://www.cnblogs.com/zhuyuannet/p/51830 ...

  8. 中文版Chrome浏览器不支持12px以下字体的解决方案

    中文版Chrome浏览器不支持12px以下字体的解决方案 Chrome 27之前的中文版桌面浏览器会默认设定页面的最小字号是12px,英文版则没有限制,主要是因为chrome认为汉字小于12px就会增 ...

  9. 两种解决IE6不支持固定定位的方法

    有两种让IE6支持position:fixed 1.用CSS执行表达式 *{margin:0;padding:0;} * html,* html body{ background-image:url( ...

最新文章

  1. Python3 turtle教程
  2. 双十一!教你用Python感知女朋友的情绪变化?
  3. LiveVideoStack:祝大家 2019 新年快乐!
  4. Getting the right Exception Context from a Memory dump Fixed
  5. mysql在mac上的坑
  6. android JNI调用(Android Studio 3.0.1)(转)
  7. 同事说他的应用起不来了,因为我的代码里面多了一个空格!
  8. PSP(个体软件过程)
  9. 46.Linux/Unix 系统编程手册(下) -- System V 消息队列
  10. FPGA按键消抖—两种按键消抖形式的对比
  11. Securing Big Data Provenance for Auditors: The Big Data Provenance Black Box as Reliable Evidence
  12. 计算机走进画图世界课件,windowsxp走进画图世界教案
  13. 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.1 工作流和可视化编程...
  14. nginx反向代理文件下载失败
  15. 使用Hyper-V的安卓模拟器-兆懿
  16. 武汉财政容灾系统应用案例
  17. 微信小程序使用iconfont字体图标
  18. 计算机等级考试光敏电阻,光敏电阻的基础知识介绍
  19. 64位win7共享打印机提示0x000006cc的解决方法
  20. 打工人速看!PMP值得考吗?PMP项目管理证书含金量高吗?详细解答来了!

热门文章

  1. Redis底层 知识(校招、社招必看)
  2. java下载excel导入excel读取excel数据,将数据插入数据库
  3. MyCobot六轴机械臂开箱及开发前的准备工作(一)
  4. vue里 a(){} 和a:()=>{}的区别
  5. 钉钉添加代收邮箱地址
  6. Python 学习之 --- 语法部分(变量、标识符、关键字、进制转换、数据类型转换、运算符)
  7. Nightingale 滴滴夜莺 运维监控-快速开始
  8. VMware ESXI上开虚机玩KVM
  9. linux内核使用scons构建,scons安装和使用
  10. 自定义dns服务器是什么,dns是什么意思?dns怎么设置(手动设置/软件设置)