正在加载...

很早就在这里看到过解决方案,与嗷嗷讨论后发现这个方案还是很可靠的。当然,唯一的缺点就是每一个属性都要去Hack,但我在很多实践中,只用‘修正’1-2个属性就可以了。

具体写法很容易:

#someNode
{
    position: fixed;
   #position: fixed;
   _position: fixed;
}
  • 第一排给Firefox以及其他浏览器看
  • 第二排给IE7(可能以后的IE8、IE9也是如此,谁知道呢)看
  • 第三排给IE6以及更老的版本看

最好的应用就是可以让IE6也“支持”position:fixed,而且,配合这个原理,可以做到不引入JavaScript代码(仅用IE6的expression),我这里有一个现成的页面,CSS如下写:

#ff-r
{
 position:  fixed;
_position:  absolute;
 right:     15px;
 top:       15px;
_top:       expression(eval(document.compatMode &&
            document.compatMode=='CSS1Compat') ?
            documentElement.scrollTop+15 :
            document.body.scrollTop +
            (document.body.clientHeight
            -this.clientHeight));
}

是不是很方便:)

还没找到您要的东西?Google试试看吧,
Google更注重原创、时效性好的文章:



本文相关评论: 才 24 条评论
( 展开所有评论 | 收起所有评论 ) 立刻发表评论 »
胡戈戈 2007-10-13 12:11:15

DDDDDDDDDDDDDD

zicjin 2007-10-13 12:27:30

微软刚刚已经给盗版用户升级IE7了,,,IE6应该可以放弃了,有时间去网吧观察一下是不是这样

aw 2007-10-13 13:55:55

从我的Google Analytics结果表明,IE6就算要消亡,也不是朝夕之事

afcn007 2007-10-13 15:33:30

其实还是这样
.test{
position:fixed !important;
position:absolute;
}
比较简单,ie6的important bug处理起来最简单了

iVane Hwang 2007-10-13 18:27:08

这样只能解决IE6与IE7,FF之类浏览器的Hack,并不能解决IE7跟FF,Opera之类浏览器的Hack~

david 2007-10-13 21:42:50

用expression会非常耗资源,以前referer后台有这样用,后来发现网页莫名奇妙的狂占内存,后来发现是expression的问题,因为css中的expression是不断在执行。

aw 2007-10-13 21:45:11

呃。这个,也就是说同样效果的JavaScript代码会是一个更好的solution?

david 2007-10-15 00:42:36

是这样,expression只是一种取巧的写法。你可以观察一下,在用expression实现滚动效果的页面中,鼠标随便晃动,内存都会增加

aw 2007-10-15 01:01:37

寒,这个到真没有观察。Anyway,我觉得小项目这样做也没关系。要知道Flash7的内存泄漏比这个厉害多了。
其实使用expression主要就是为了省掉JavaScript,呵呵……

david 2007-10-18 11:45:23

忽然想起当初为什么发现这个问题,其实不是因为内存占用,是因为ie crash!
刚开始有短时间在clicki的后台进行操作,ie经常莫名其妙死掉,我以为是ajax的问题,后来发现是这个expression造成的!

Cat Chen 2007-10-14 00:33:36

我也是最近搜索如何让IE支持verticle-align的时候才发现#和_的区别,一个包括IE7,一个仅包括IE6-。

wondger 2007-10-14 01:31:20

“第二排给IE7″~···
怎么我的IE6也认识呢~···
那这样“*”和“#”有和区别了?不都是区分IE?

LEMONed 2007-10-14 07:21:45

只可惜不能通过校验,其实这个方法是很不错的。

Richbox 2007-10-15 10:49:54

expression确实在执行效率上有问题,不推荐使用。

aw 2007-10-15 11:14:34

“执行效率”?这似乎和“内存泄漏”是两回事儿啊。

firepage 2007-10-15 18:01:20

习惯用
#someNode
{
position: fixed;
+position: fixed;
_position: fixed;
}

厦门网站建设 2007-10-18 20:33:03

不错。IE6总要淘汰

Ivy 2007-12-24 05:19:17

很有用的資訊
但不知為何我的IE7已經update了仍然出現IE6的毛病
奇怪了

xhlv 2008-01-07 16:39:26

为什么无法区分ie6和ie7??
难道是ie7修复了这个bug??

#someNode
{
position: fixed;
#position: fixed;
_position: fixed;
}

#someNode
{
position: fixed;
+position: fixed;
_position: fixed;
}

CSS 2008-01-23 09:42:51

我固执的认为CSS和HTML应该尽量通过W3C认证

某天的某个升级,也许hacks就无法生效了。

nh 2008-06-17 19:10:39

有用哦!谢谢你!
不过其余的margin貌似就没用了。。。

胖乎乎的坛子 2008-07-22 17:46:31

请教一下在表格中使用positon定位,在ie中是可以的,但是在ff里面却有问题:
ie 6 显示是根据定位样式 来的.但在ff里面却挤成一团了.感谢..

baguser 2009-10-05 12:42:14

你好,请教以下,如果让我的网站实现对ie6的css hack,其他ie7,ie8,safari,firefox都已经完成,ie6把我难道了,如果可以帮助我,万分感谢

清如许 2009-10-07 00:28:31

IE 8 和 firefox 显示效果很像 我试了好几个都和 firefox 一致  

[支持Ctrl+Enter]为了我们大家和家人的安全,留言请慎重!
声明:
1、本站仅与见过面的个人博客交换链接,见此文
2、留言时的头像是Gravatar提供的服务。如果您有兴趣并且有闲暇时间,可以看看这里的介绍