您的位置:首页 > 其它

IE6 select z-index无效,遮挡div bug的解决方法

2010-06-18 22:22 696 查看
今天我说说iframe解决的一般方法,已经使用jQuery插件bgiframe解决IE6 select z-index无效,遮挡div的bug。

解决方法之一:Iframe包裹select元素
使用iframe包住select,这样iframe有z-index,只要在div上设置的z-index比iframe的高即可~这种方法有一定的局限性,不可能每个select都要加个iframe吧?所以不推荐!代码如下:

<iframe style="z-index:1" style="z-index:1"><!-- 用iframe 解决此bug --> 
<select name="country"> 
<option value="1">china</option> 
<option value="2">japanese</option> 
<option value="1">U.S.A</option> 
</select> 
</iframe>

解决方法之二:以Iframe作为div的子元素,覆盖select元素
建立一个跟div同宽同高的iframe,并且z-index比div要低。这种方法推荐使用:
<style>.T_iframe 
{ 
position: absolute;/*绝对定位保证iframe不会占用流布局空间*/ 
width: 100%; /*100%保证可以覆盖整个div*/ 
height: 100%; 
z-index:-1; /*-1保证iframe显示在div下方*/ 
} 
.T_div 
{ 
position: absolute; 
left:100px; 
top:50px; 
width: 300px; 
height: 200px; 
background : blue; 
z-index:100; 
} </style> 
<div class="T_div"> 
<span>这里可以包含其他dom元素</span> 
<iframe class="T_iframe"></iframe> 
</div>

解决方法之三:使用jQuery的bgiframe插件
如果你的项目引用了jQuery,那么我推荐使用bgiframe插件来解决select的遮挡div问题,原理很简单,就是建立一个同高同宽的iframe插入到div中去~bgiframe下载地址:http://github.com/brandonaaron/bgiframe,使用方法:

$('.fix-z-index').bgiframe();
参数说明:

top:设置top位置,默认为auto 
left:设置left位置,默认为auto 
width:设置iframe宽度,默认为auto 
height:设置iframe高度,默认为auto 
opacity:设置是否透明,默认为true 
src:设置iframe的src,默认为javascript:false
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: