利用层叠优先顺序解决IE&FF视觉兼容

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

z-index从一开始就被我忽略,几乎没有用到而导致对他的理解为零,他的准确含义是:检索或设置对象的层叠顺序。在IE5.5+中, iframe 对象开始支持此属性。而在之前的浏览器版本中, iframe 对象是窗口控件,会忽略此属性。此属性对于 currentStyle 对象而言是只读的。对于其他对象而言是可读写的。

www.80t.net 首页顶部banner为特殊的滤镜切换效果,因为如果加了dtd申明效果无效,所以此处为iframe嵌套的单独页面,这个效果在FF同样无效。如何去兼容,以前考虑了N种办法,因为此滤镜IE独有,完全效果兼容是不可能的,但有如下变通达到效果上一致:

1. 更改行为兼容,判断客户端浏览器分别载入显示,即IE正常切换,FF就显示一张图。

2. 让iframe透明,被嵌套页用图片做背景,即图片不能切换就显示背嵌套页内做背景的图片。

实践证明2不可行,1是可行的,而且也比较简单。可是在更改过程中,又发现一种使用css来兼容的方法。

此处如果按照三维角度去看一共是四层结构,最上层的在线人数显示,第二层的iframe,第三层的右侧阴影横条,第四层是背景。

想法很简单,再增加一层,绝对定位的位置和大小完全同第二层一样,也就是说两层重叠在一起,谁优先级高能看见谁,两层书写先后不影响。于是z-index就发挥了强大的作用。

<div style="width:760px; height:160px; background:url(http://www.80t.net/skin/80t/banner_default.gif); position:absolute; top:70px; left:0; z-index:2!important; z-index:1;"></div>

<iframe style="position:absolute; top:70px; left:0; z-index:1!important; z-index:2;" frameborder="0" src="/banner.htm" width="760" height="160"></iframe>

两层代码如上,通过z-index指定优先级,再综合声明判断客户端,自动指派优先级高低,很清晰的逻辑,测试通过,缺点是增加了一层的载入时间。

来源:http://vision.webidea.com.cn/blog/article.asp?id=105

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航