DIV 遮挡问题总结

[size=large]
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(附件中也有),使用方法:

在jsp页面引入
<script type="text/javascript" src="scripts/jquery.bgiframe.js"></script>

或者<script type='text/javascript' src='<%= request.getContextPath()%>/scripts/jquery.bgiframe.js'></script>

<script type="text/javascript">

$(document).ready(function() {
$('#dialog').bgiframe(); //dialog是浮动区块div的id.
});

</SCRIPT>
或者

<script type="text/javascript"> 

$(function() {

$('#dialog'').bgiframe();

});

</SCRIPT>
使用的是Jquery UI dialog的时候,可以利用UI dialog的属性达到这个目的。(这个方法更简单)

$(document).ready(function(){  
$('#dialog').dialog({
autoOpen: false,
height:600,
width: 900,
bgiframe: true , //解决下拉框遮盖div的bug
resizable: false, //dialog的大小不可以改变
draggable:false //dialog不可以拖动
});
});

[/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值