千家信息网

如何让position:fixed在IE6中工作

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章将为大家详细讲解有关如何让position:fixed在IE6中工作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。和大家重点讨论一下如何让po
千家信息网最后更新 2026年11月04日如何让position:fixed在IE6中工作

这篇文章将为大家详细讲解有关如何让position:fixed在IE6中工作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

和大家重点讨论一下如何让position:fixed在IE6中工作,众所周知IE6不支持position:fixed,这个bug与IE6的双倍margin和不支持PNG透明等bug一样臭名昭著。到底有什么妙招让position:fixed在IE6中工作呢,请看下文详细介绍。

如何让position:fixed在IE6中工作

众所周知IE6不支持position:fixed,这个bug与IE6的双倍margin和不支持PNG透明等bug一样臭名昭著。前些天我做自己的博客模板的时候,遇到了这个问题。当时就简单的无视了IE6——尽管有几个使用IE6的朋友,一起BS我……但是对于大项目或商业网站,如果有用到这个属性的时候,是不可能直接无视的。

如何让position:fixed在IE6中工作的?

本文所使用的技巧是用了一条InternetExplorer的CSS表达式(expression)。你不可以直接使用该表达式,因为它可能会因为缓存而不更新。

解决这一点的最简单的方式是使用eval包裹你的语句。

如何解决"振动"的问题?

显然IE有一个多步的渲染进程。当你滚动或调整你的浏览器大小的时候,它将重置所有内容并重画页面,这个时候它就会重新处理css表达式。这会引起一个丑陋的"振动"bug,在此处固定位置的元素需要调整以跟上你的(页面的)滚动,于是就会"跳动"。

解决此问题的技巧就是使用background-attachment:fixed为body或html元素添加一个background-image。这就会强制页面在重画之前先处理CSS。因为是在重画之前处理CSS,它也就会同样在重画之前首先处理你的CSS表达式。这将让你实现***的平滑的固定位置元素!

这个方案并不是我提供的。我是在网上的某个地方读到这些的。如果你知道是谁原创了这个方法,请告诉前端观察。我发现的另外一个小技巧是,你根本无需一个真实的图片!你可以使用一个about:blank替代一个spacer.gif图片,而且它工作的同样出色。

CSSCode

/*让position:fixed在IE6下可用!*/   .fixed-top/*头部固定*/{position:fixed;bottom:auto;top:0px;}  .fixed-bottom/*底部固定*/{position:fixed;bottom:0px;top:auto;}  .fixed-left/*左侧固定*/{position:fixed;right:auto;left:0px;}  .fixed-right/*右侧固定*/{position:fixed;right:0px;left:auto;}  /*上面的是除了IE6的主流浏览器通用的方法*/  *html,*htmlbody/*修正IE6振动bug*/{background-image:url(about:blank);background-attachment:fixed;}  *html.fixed-top/*IE6头部固定*/{position:absolute;bottom:auto;top:_expression(eval(document.documentElement.scrollTop));}  *html.fixed-right/*IE6右侧固定*/{position:absolute;right:auto;left:_expression(eval   (document.documentElement.scrollLeft+document.documentElement.clientWidth-this.offsetWidth)   -(parseInt(this.currentStyle.marginLeft,10)||0)-(parseInt(this.currentStyle.marginRight,10)||0));}  *html.fixed-bottom/*IE6底部固定*/{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)));}  *html.fixed-left/*IE6左侧固定*/{position:absolute;right:auto;left:_expression(eval(document.documentElement.scrollLeft));}

更新:添加border、padding和margin支持!

Note:如果你不需要支持margin,可以将所有的`parseInt`部分去掉。

Note:我只在标准模式下进行了测试。

关于如何让position:fixed在IE6中工作就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

中工 支持 时候 表达式 元素 内容 技巧 问题 页面 处理 振动 众所周知 臭名昭著 位置 双倍 右侧 图片 头部 底部 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技公司 互联网科技公司简介 云之行互联网科技 互联网科技巨头监管 世界互联网领先科技成果 百单互联网科技有限公司 壹账通互联网科技 人人互联网科技是培训 新华互联网科技校企合作 衡水科技产业互联网平台 互联网科技公司招聘 团飞科技与伯堂互联网服务平台 苏州铭阳互联网科技有限公司 米聚互联网科技南京有限公司排面 佛山市翊博互联网络科技有限公司 互联网科技圈年度人物 保山互联网科技靠谱吗 中国互联网公司的科技投入 青岛易易互联网科技 互联网对科技影响 科技创新与互联网经济 厦门中拓互联网络科技有限公司 朗新科技与工业互联网 合肥互联网科技公司 成都铂石互联网科技做什么的 中国互联网十大科技股排名 想开互联网科技公司怎么样 萌小萌互联网科技河南有限公司 广西科技产业互联网是什么 互联网科技手抄报图片
0