归纳总结DIV中的一些遮挡问题

发布时间:2020-12-29编辑:脚本学堂
下面讲述在div中遇到的一些遮挡问题以及解决方法,有需要的朋友请参考一下。

1、DIV被Silverlight遮挡, 加入windowless参数即可。

<object id=”silverlight” data=”data:application/x-silverlight,” type=”application/x-silverlight-2-b2″ width=”100%” height=”100%” >

<param name=”source” value=”ClientBin/YourSilverlight.xap”/>

<param name=”onerror” value=”onSilverlightError” />

<param name=”background” value=”transparent” />

<param name=”windowless” value=”true” />

2、DIV被Flash遮挡,加入<param name="wmode" value="transparent" />

复制代码 代码示例:

<object width="480" height="400" data="你的flash.swf"

type="application/x-shockwave-flash">

<param name="wmode" value="transparent" />

<param name="align" value="middle" />

<param name="src" value="你的flash.swf" />

<param name="quality" value="high" />

</object>

解决方法一: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