`
ice-cream
  • 浏览: 329417 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

IE6下兼容position:fixed的问题

    博客分类:
  • Css
阅读更多

做网页时经常会有让某个层浮动在浏览器窗口的固定位置不变的需求(如图)。

当出现滚动条时,移动上下滚动条时层相对浏览器边框的距离也不变。

一个position:fix就可以解决,只是ie6到目前为止还不支持这个position属性。

 

 

<div id="fixed">
    我不会动
</div>
<div id="body">
	<p>test1</p>
	<p>test2</p>
	<p>test3</p>
	<p>test4</p>
	<p>test5</p>
	<p>test6</p>
	<p>test7</p>
	<p>test8</p>
	<p>test9</p>
	<p>test10</p>
</div>

 

原理:

用#body层模拟body,固定层#fixed放到#body外面.

ie6用绝对定位postion:absolute,相对浏览器窗口,定义left,right,bottom,top

其他浏览器用postion:fixed,相对浏览器窗口,定义left,right,bottom,top

 

1.如果#fixed的高度是百分比(例如10%),那#body的高度也是百分比(例如90%)。

定义left:0;bottom:0.

只用css就可以达到:当改变浏览器的大小时,每个层的高度会自适应的。

<style type="text/css">
<!--
/*隐藏边距*/
body,div,p{margin:0;padding:0;}
html,body{height:100%; width:100%; overflow:hidden;}  

/*用div伪装body*/
div#body{
	position:relative;
	width:100%;
	height:90%;
	overflow-y:auto;
	overflow-x:hidden;
	background:#bbb;
}

/*悬停的元素 id=fixed*/
div#fixed{
	z-index:10;
	position:fixed;
	left:0;
	bottom:0;
	width:100%;
	height:10%;
	background:#000;
	color:#fff;
	text-align:center; 
	_position:absolute;
}

p{
	line-height:50px;
	padding-left:20px;
}
-->
</style>
 

2.如果fixed的高度是固定值(50px),那body的高度是固定值(浏览器可视区域高度-50px)。

此时position:fixed已经没有意义了。

需要用js动态获取每个浏览器可视区域的高度,然后减去50px,最后把相减后的高度值赋给#body。

用resize事件,当浏览器窗口大小改变时就触发resize事件,重新获取高度。

$(document).ready(function(){	
	$(window).resize(function(){
		resizeEvent();
	});
	resizeEvent();
});
function resizeEvent(){
	var bodyHeight = $("body").height() - 50;
	$("div#body").height(bodyHeight);		
}
  • 大小: 5.9 KB
分享到:
评论
3 楼 comasp 2009-01-16  
ie6还是用js动态 改变。
2 楼 ice-cream 2009-01-15  
ls的意见非常不错,平时都只关注html有没有通过w3c而忽略了css有没有通过w3c。
刚装好了测css的插件,以后多留意。
1 楼 hozaka 2009-01-15  
一般情况下我会这样写
.fixed {
  position: fixed !important;
  position: absolute;
}

看起来比较爽,总觉得各种各样的符号很不舒服,而且能通过W3C Validation。

相关推荐

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

    这篇博客“IE6下的纯CSS完美position:fixed实现”可能介绍了一种通过CSS技巧或JavaScript工作来模拟`position: fixed`的方法。 尽管描述为空,我们可以推测博主可能探讨了以下几种常见策略: 1. **表达式...

    position:fixed在ie6的使用

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

    javascript ie6兼容position:fixed实现思路

    然而,不幸的是,Internet Explorer 6 (IE6) 并不支持 `position:fixed`,这就给开发者带来了兼容性问题。 为了解决IE6中的这个问题,通常需要借助JavaScript来模拟 `position:fixed` 的效果。以下是一个实现兼容性...

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

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

    position_fixed

    描述中提到的"完美兼容IE6"是一个挑战,因为IE6对CSS标准的支持并不完全,尤其是对于`position: fixed;`的处理存在一些问题。在其他现代浏览器中,`position: fixed;`工作得相当好,但在IE6中,需要采用一些特殊的...

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

    需要注意的是,由于旧版本的Internet Explorer(如IE6)不支持CSS3的一些新属性,可能会需要一些额外的hack来确保兼容性。在这个例子中,使用了`_position: absolute;`作为对IE6的兼容处理。 此技术非常适用于创建...

    解决ie6的定位问题 position fiexed

    为了解决这个问题,我们需要一种兼容IE6的方法来模拟`position: fixed;`的效果。 #### 解决方案 为了克服IE6中的这一限制,可以采用以下策略: 1. **使用条件注释**:首先,利用HTML中的条件注释来为目标浏览器...

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

    综合以上内容,我们可以知道,要解决IE6中的position: fixed问题,需要利用javascript表达式和特定的CSS滤镜语法,来模拟出其他浏览器中position: fixed所提供的效果。这种做法虽然复杂,但可以在不牺牲太多可读性...

    HTML IE6 纯CSS 解决 position fixed 的问题

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

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

    这个HTML文件很可能会包含JavaScript代码和CSS样式,用于创建一个具有Lightbox效果、Windows关机动画、使用`div`覆盖页面并解决了IE6的`position:fixed`兼容性问题的页面。 总的来说,这个知识点涵盖了Web开发中的...

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

    以上就是解决IE6中 `position:fixed` 兼容性的技巧。需要注意的是,这些方法仅适用于IE6,对于其他版本的IE或者现代浏览器,可以直接使用 `position:fixed`。在实际开发中,考虑到跨浏览器兼容性和性能,通常会结合...

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

    然而,由于不同浏览器之间的兼容性问题,使用 `position: fixed` 时可能会遇到一些挑战,特别是在老旧的浏览器如 Internet Explorer 6 中。 在给定的描述和代码示例中,作者提供了一个跨浏览器的 `position: fixed`...

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

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

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

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

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

    在IE6浏览器中,`position:fixed`是一个棘手的问题,因为这个浏览器并不原生支持这一CSS定位方式。`position:fixed`允许元素相对于浏览器窗口进行定位,即使页面滚动,该元素仍然保持在屏幕的固定位置。这对于创建如...

    ie6 position:fixed解决方案

    本文将探讨两种在 IE6 中模拟 `position: fixed;` 的方法。 1. **纯 CSS 法**: 这种方法主要依赖于 IE6 特有的 * 选择器。通过将 `* html` 作为顶层选择器,我们可以针对 IE6 应用特定的样式。首先隐藏浏览器的...

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

    总之,解决 IE6 的 `position:fixed` 兼容性问题需要对浏览器特性和 CSS 技巧有深入理解。尽管 IE6 已经逐渐被淘汰,但考虑到某些场合可能仍需支持,上述方法依然具有参考价值。不过,随着现代浏览器的普及,建议尽...

Global site tag (gtag.js) - Google Analytics