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

  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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值