今天遇到一个比较头疼的问题,就是在一个标签上右键,弹出的菜单div被标签内的Office控件Object挡住了下半部分,始终无法显示。查了好多解决方案,最终都不能解决问题,几乎都要放弃了。中午吃饭的时候,脑海中又一个劲儿的想这个问题,突然,来了一点灵感,回去之后,抓紧时间试了一下,终于解决了!终于可以放松一下了!以下是该问题解决的一点总结,希望对大家有所帮助!
<div id="contextmenu" style="width: 120px; height:120px;DISPLAY: none; top: 26px; left: 300px;z-index:999999">
<ul>
<li>关闭</li>
<li>刷新</li>
<li>关闭其他</li>
<li>关闭全部</li>
</ul>
<iframe id="iframe1" src="about:blank" frameBorder="0" marginHeight="0" marginWidth="0" style="position:absolute; visibility:inherit; top:0px;left:0px;width:120px; height:120px;z-index:-1; filter:alpha(opacity=0);"></iframe>
</div>
好了,说明一下:div为右键菜单div,被object遮挡,于是在该div中增加一个iframe,通过iframe来遮挡select下拉列表或Object控件,因为iframe的级别高于select下拉列表和Object控件,而又由于div能够遮挡iframe,所以可以通过在div中加入iframe来解决该类问题。其中有几点需要注意:1.div必须有特定的z-index且大于iframe的z-index,不能是auto或空;2.iframe的z-index必须为负(之前一直设置为正值,虽然小于div的z-index,但一直不能被div遮盖),否则,div无法遮盖iframe;3.iframe的top和left为0,且iframe的宽、高与div的宽高相等;4.注意设置iframe的透明度为0.