在 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(分页的高度)
scrollTop和clientHeight分别用来解决上面两个问题,滚动条的滚动会影响到scrollTop,而窗口的变化会影响到clientHeight,所以当这两个事件被触发时必须重置top,于是就形成类似下面的代码,但这段脚本的刷新率会非常高,估计有性能问题.
window.onresize = window.onscroll = function(){ //reset top };
相关推荐
总之,要在IE6下实现`position: fixed`效果,开发者需要依赖一些非标准的技术和工作-around。这篇博客可能提供了一个详细指南,帮助那些仍需要支持IE6的开发者解决这个问题。通过学习和理解这些技术,我们可以更好地...
这个内容是老生常谈了,主要问题就是IE6不支持 position:fixed 引起的BUG.当我们去搜索解决这个bug的垮浏览器解决办法时,绝大多数结果都是说使用 position:absolute 来替代解决,可是我们真的解决了么?没有,因为当页面...
以下是一个针对IE6实现`position:fixed`效果的实例: ```html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http:/...
然而,在Internet Explorer 6(简称IE6)这个古老且具有很多兼容性问题的浏览器中,`position:fixed`的实现并不完美,需要采用特定的“hack”技巧来实现类似的效果。 首先,我们来详细理解`position:fixed`的正常...
“IE 6实现position:fixed;”这部分提到的是针对旧版Internet Explorer(尤其是版本6)的兼容性问题。由于IE6不完全支持CSS的`position: fixed`,开发者通常需要使用JavaScript库如jQuery或特定的CSS hack来模拟固定...
本篇文章主要探讨了如何利用CSS属性position:fixed来实现DIV的绝对居中。 首先,了解position:fixed属性的作用是关键。position:fixed表示元素相对于浏览器窗口进行定位,这意味着无论页面如何滚动,元素都将保持在...
标题"position_fixed"暗示我们将讨论如何在包括IE6在内的各种浏览器中实现`position: fixed;`的完美兼容。 描述中提到的"完美兼容IE6"是一个挑战,因为IE6对CSS标准的支持并不完全,尤其是对于`position: fixed;`的...
通过以上方法,可以在IE6中实现接近`position: fixed;`的效果。虽然这种方法不是完美的解决方案,但考虑到IE6的历史地位以及其在某些组织中的持久使用,这些技巧仍然具有一定的实用价值。对于现代Web开发来说,建议...
通过这种方法,即使在IE6这样的旧版本浏览器中,也可以实现类似 `position:fixed` 的效果。这种方法的关键在于利用JavaScript动态计算和更新元素的位置,以达到与 `position:fixed` 相似的视觉效果。 在实际应用中...
通过设置 `overflow:hidden`,可以防止 IE6 中滚动条出现在整个页面上,这通常是由于 `position: fixed` 不支持导致的。然后,`* html div#content` 选择器将高度设为 100%,并启用内部滚动,以解决因 `body` 隐藏...
本文将介绍一种更优雅、资源效率更高的方法来解决IE6对`position:fixed`的支持问题,这种方法是通过条件注释和CSS表达式来实现的。 首先,我们可以使用HTML的条件注释(Conditional Comments)来针对IE6加载特定的...
IE6浏览器由于其特殊的文档对象模型和CSS处理方式,使得在该浏览器中实现某些CSS特性,比如position: fixed,变得比较复杂。在IE7及以上的浏览器中,position: fixed可以很方便地让一个元素固定在页面的某个位置,...
因此,尽管这种方法可以解决IE6下的`position:fixed`问题,但它并不是最佳实践。随着IE6的使用率逐渐降低,更推荐的方法是逐步停止对它的支持,转而专注于更现代的浏览器和更高效的前端技术。 总的来说,解决IE6不...
然而,在Internet Explorer 6 (IE6)这个古老的浏览器中,`position: fixed;`并不完全按照预期工作,存在一些兼容性问题。这个问题困扰了开发者很多年,因为它限制了网页在IE6上的设计灵活性。 为了解决IE6中的`...
本文将详细介绍如何解决 IE6 不支持 `position:fixed` 的问题,并提供一种完美的解决方案。 首先,让我们分析一下 IE6 中的 `position:fixed` bug。在标准浏览器中,设置 `position:fixed` 可以使元素相对于浏览器...
由于 IE6 的浏览器引擎对 CSS 的解析与现代浏览器有所不同,开发者需要采用特定的技巧来实现类似 `position:fixed` 的效果。 首先,针对IE6的“振动bug”,在CSS中添加如下代码: ```css /* 修正IE6振动bug */ html...
及上下两边,共四种位置的固定,与以往的教程不同的地方是,它使用CSS表达式来兼容IE5、IE6,且避免了js模拟时,拖动滚动条时出现抖动的问题,另外在IE5或者怪癖模式下也完全正常,没有任何问题。如果你有更好的方案...
IE7下当position:fixed遇到text-align:center的解决方法 在讨论解决IE7浏览器(或IE8的兼容模式)下,当position:fixed定位遇到外层容器使用text-align:center属性时出现的问题之前,需要了解几个关键的CSS知识点。...