我们在作B/S开发的时候经常会遇到DIV层被下拉框遮挡的时候,这让我们很苦恼。无论我们怎么设置css样式都无济于事,因为selese元素的优先级要不div高。那么我们就要选用比select元素优先级还要高的元素来遮挡它。这时候我们想到了iframe。我们可以在div里加上iframe来实现这种效果。
其实网上有很多类似的代码。但是iframe的大小设置是个问题,要做到和div的大小一样比较困难,这里展示一点小技巧。
就是用parentNode。具体的代码如下:
xml 代码
- <div id="menu" style="position:absolute; visibility:hidden; top:20px; left:20px; width:100px; height:200px; background-color:#6699cc;">
- <table>
- <tr><td>选项一</td></tr>
- <tr><td>选项二</td></tr>
- <tr><td>选项三</td></tr>
- <tr><td>选项四</td></tr>
- <tr><td>选项五</td></tr>
- </table>
- <iframe src="" frameborder="0" style="position:absolute; visibility:inherit; top:0px; left:0px; width:expression(this.parentNode.offsetWidth); height:expression(this.parentNode.offsetHeight); z-index:-1; filter='progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0)';"></iframe>
- </div>
- <a href="#" onclick="document.getElementById('menu').style.visibility='visible'">菜单</a>
我们可以看到在设置style 的时候width:expression(this.parentNode.offsetWidth);表达式的方式。this.parentNode.offsetWidth就代表div的宽度