理智地、负责任地、透明地推广Firefox

很早就在这里看到过解决方案,与嗷嗷讨论后发现这个方案还是很可靠的。当然,唯一的缺点就是每一个属性都要去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));
}

是不是很方便:)

: http://www.awflasher.com/blog/archives/1080

哇!跟我一样,您也是一名Firefox用户,这些话题您可能感兴趣:

RSS feed

才 20 条评论 ( 展开所有评论 | 收起所有评论 ) 立刻发表评论 »

胡戈戈
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就无法生效了。