`

IE6下实现position:fixed

阅读更多

在 IE6 中实现 position:fixed; 的办法

刚刚提过,在IE6中是不能直接使用 position:fixed; 。你需要一些 CSS Hack 来解决它。当然,IE6 的问题也不仅仅 position:fixed;

相同的还是让<div id="top">...</div>元素固定在浏览器的底部和距离右边的20个像素,这次的代码是:

#top{
position:fixed;
_position:absolute;
bottom:0;
right:20px;
_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)));
}

right 跟 left 属性可以用绝对定位的办法解决,而 top 跟 bottom 就需要用上面的表达式来实现。其中在_position:absolute;中的_符号只有 IE6 才能识别,目的是为了区分其他浏览器

上面的只是一个例子,下面的才是最重要的代码片段:

使元素固定在浏览器的顶部#top{
_position:absolute;
_bottom:auto;
_top:expression(eval(document.documentElement.scrollTop));
}
使元素固定在浏览器的底部#top{
_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-top:10px;或者_margin-bottom:10px;修改其中的数值控制元素的位置。

position:fixed; 闪动问题

现在,问题还没有完全解决。在用了上面的办法后,你会发现:被固定定位的元素在滚动滚动条的时候会闪动。解决闪动问题的办法是在 CSS 文件中加入:*html{
background-image:url(about:blank);
background-attachment:fixed;
}
其中*是给 IE6 识别的。

到此,IE6 的 position:fixed; 问题已经被解决了。这里还为大家搜集了一个采用JS解决的办法。

JS的解决方案

JS是我最不愿使用的解决方案,因为这种纯样式的bug用JS来解决有点大材小用,而且JS需要DOM载入后才执行,有可能会出现闪屏的现象.

JS的解决方案很简单,通过设置一个top来实现,top是指分页的上边距离document的上边的长度,可以被分解成下面几项(并不是完整的代码)

top = scrollTop + clientHeight - height(分页的高度)

JS解决IE6下position:fixed元素无效的原理

scrollTop和clientHeight分别用来解决上面两个问题,滚动条的滚动会影响到scrollTop,而窗口的变化会影响到clientHeight,所以当这两个事件被触发时必须重置top,于是就形成类似下面的代码,但这段脚本的刷新率会非常高,估计有性能问题.

window.onresize = window.onscroll = function(){
    //reset top
};
分享到:
评论

相关推荐

    IE6下的纯CSS完美position:fixed实现

    总之,要在IE6下实现`position: fixed`效果,开发者需要依赖一些非标准的技术和工作-around。这篇博客可能提供了一个详细指南,帮助那些仍需要支持IE6的开发者解决这个问题。通过学习和理解这些技术,我们可以更好地...

    IE6实现position:fixed bug (固定窗口方法)的实例

    这个内容是老生常谈了,主要问题就是IE6不支持 position:fixed 引起的BUG.当我们去搜索解决这个bug的垮浏览器解决办法时,绝大多数结果都是说使用 position:absolute 来替代解决,可是我们真的解决了么?没有,因为当页面...

    ie6下实现position:fixed效果实例介绍

    以下是一个针对IE6实现`position:fixed`效果的实例: ```html &lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt; &lt;html xmlns="http:/...

    position:fixed在ie6的使用

    然而,在Internet Explorer 6(简称IE6)这个古老且具有很多兼容性问题的浏览器中,`position:fixed`的实现并不完美,需要采用特定的“hack”技巧来实现类似的效果。 首先,我们来详细理解`position:fixed`的正常...

    仿Lightbox效果(Windows关机效果),div覆盖,锁定页面及IE 6实现position:fixed;

    “IE 6实现position:fixed;”这部分提到的是针对旧版Internet Explorer(尤其是版本6)的兼容性问题。由于IE6不完全支持CSS的`position: fixed`,开发者通常需要使用JavaScript库如jQuery或特定的CSS hack来模拟固定...

    css中position:fixed实现div居中上下左右居中

    本篇文章主要探讨了如何利用CSS属性position:fixed来实现DIV的绝对居中。 首先,了解position:fixed属性的作用是关键。position:fixed表示元素相对于浏览器窗口进行定位,这意味着无论页面如何滚动,元素都将保持在...

    position_fixed

    标题"position_fixed"暗示我们将讨论如何在包括IE6在内的各种浏览器中实现`position: fixed;`的完美兼容。 描述中提到的"完美兼容IE6"是一个挑战,因为IE6对CSS标准的支持并不完全,尤其是对于`position: fixed;`的...

    解决ie6的定位问题 position fiexed

    通过以上方法,可以在IE6中实现接近`position: fixed;`的效果。虽然这种方法不是完美的解决方案,但考虑到IE6的历史地位以及其在某些组织中的持久使用,这些技巧仍然具有一定的实用价值。对于现代Web开发来说,建议...

    javascript ie6兼容position:fixed实现思路

    通过这种方法,即使在IE6这样的旧版本浏览器中,也可以实现类似 `position:fixed` 的效果。这种方法的关键在于利用JavaScript动态计算和更新元素的位置,以达到与 `position:fixed` 相似的视觉效果。 在实际应用中...

    跨浏览器的实践:position:fixed 层的固定定位

    通过设置 `overflow:hidden`,可以防止 IE6 中滚动条出现在整个页面上,这通常是由于 `position: fixed` 不支持导致的。然后,`* html div#content` 选择器将高度设为 100%,并启用内部滚动,以解决因 `body` 隐藏...

    IE6支持position:fixed完美解决方法

    本文将介绍一种更优雅、资源效率更高的方法来解决IE6对`position:fixed`的支持问题,这种方法是通过条件注释和CSS表达式来实现的。 首先,我们可以使用HTML的条件注释(Conditional Comments)来针对IE6加载特定的...

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

    IE6浏览器由于其特殊的文档对象模型和CSS处理方式,使得在该浏览器中实现某些CSS特性,比如position: fixed,变得比较复杂。在IE7及以上的浏览器中,position: fixed可以很方便地让一个元素固定在页面的某个位置,...

    js完美解决IE6不支持position:fixed的bug

    因此,尽管这种方法可以解决IE6下的`position:fixed`问题,但它并不是最佳实践。随着IE6的使用率逐渐降低,更推荐的方法是逐步停止对它的支持,转而专注于更现代的浏览器和更高效的前端技术。 总的来说,解决IE6不...

    HTML IE6 纯CSS 解决 position fixed 的问题

    然而,在Internet Explorer 6 (IE6)这个古老的浏览器中,`position: fixed;`并不完全按照预期工作,存在一些兼容性问题。这个问题困扰了开发者很多年,因为它限制了网页在IE6上的设计灵活性。 为了解决IE6中的`...

    IE6不支持position:fixed bug的完美解决

    本文将详细介绍如何解决 IE6 不支持 `position:fixed` 的问题,并提供一种完美的解决方案。 首先,让我们分析一下 IE6 中的 `position:fixed` bug。在标准浏览器中,设置 `position:fixed` 可以使元素相对于浏览器...

    IE6中的position:fixed定位兼容性写法分享

    由于 IE6 的浏览器引擎对 CSS 的解析与现代浏览器有所不同,开发者需要采用特定的技巧来实现类似 `position:fixed` 的效果。 首先,针对IE6的“振动bug”,在CSS中添加如下代码: ```css /* 修正IE6振动bug */ html...

    IE6不兼容position:fixed属性的解决办法分享

    及上下两边,共四种位置的固定,与以往的教程不同的地方是,它使用CSS表达式来兼容IE5、IE6,且避免了js模拟时,拖动滚动条时出现抖动的问题,另外在IE5或者怪癖模式下也完全正常,没有任何问题。如果你有更好的方案...

    IE7下当position:fixed遇到text-align:center的解决方法

    IE7下当position:fixed遇到text-align:center的解决方法 在讨论解决IE7浏览器(或IE8的兼容模式)下,当position:fixed定位遇到外层容器使用text-align:center属性时出现的问题之前,需要了解几个关键的CSS知识点。...

Global site tag (gtag.js) - Google Analytics