天天看点

解决DIV层被OBJECT、SELECT控件遮盖问题

浮动层或便捷菜单给用户操作极大的便利。使用IE6、7时,SELECT控件不能被DIV遮盖。OBJECT控件也不能被DIV遮盖。究其原因,大多表单控件或HTML控件是使用浏览器本身渲染绘制,因此层次可以由浏览器自身控制。而SELECT控件是Windows窗口控件,同样可见型ActiveX容器也是使用面向Windows技术开发。它们表现实质仍是相同,都是Windows窗口包含句柄。因此,浏览器不能对其调整层次,浏览器本身与他们都是平级的。尽管IE8中解决了SELECT控件的问题,但OBJECT控件依然没办法改变。

参考网上的资料经过研究,有这样的关系。Iframe框架可以遮盖OBJECT、SELECT,DIV可以遮盖Iframe。因此,我们可以将Iframe放置在DIV层内,将Iframe大小宽度设置成与层一样放置在层之下,当层经过OBJECT、SELECT时,下方的框架将替层遮盖其不能遮盖的控件。

需要说明的是使用HTML标签属性设置显示层次,必须是z-Index而不是zIndex。zIndex是使用脚本动态修改属性使用。两者不通用。

下面给出一段示例:

<div id="DominoActionBar" style='position:absolute; left:6px; top:50px; width:100%; height:45px; z-Index:9'>

……

<iframe id='iframebar' src="about:blank" frameBorder=0 marginHeight=0 marginWidth=0

<wbr>style="position:absolute; visibility:inherit; top:0px;left:6px;height:45px;width:100%; z-Index:-1; filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';"><br><wbr><wbr><wbr><wbr></iframe><br>

</div></wbr></wbr></wbr></wbr></wbr>

需要说明的是top属性要设置成0,不然将显示不了层而是框架。

继续阅读