`
lunch
  • 浏览: 76085 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

让你的DIV在下拉框的上面

阅读更多

        我们在作B/S开发的时候经常会遇到DIV层被下拉框遮挡的时候,这让我们很苦恼。无论我们怎么设置css样式都无济于事,因为selese元素的优先级要不div高。那么我们就要选用比select元素优先级还要高的元素来遮挡它。这时候我们想到了iframe。我们可以在div里加上iframe来实现这种效果。

        其实网上有很多类似的代码。但是iframe的大小设置是个问题,要做到和div的大小一样比较困难,这里展示一点小技巧。

就是用parentNode。具体的代码如下:

xml 代码
  1. <div   id="menu"   style="position:absolute;   visibility:hidden;   top:20px;   left:20px;   width:100px;   height:200px;   background-color:#6699cc;">      
  2.   <table>      
  3.   <tr><td>选项一</td></tr>      
  4.   <tr><td>选项二</td></tr>      
  5.   <tr><td>选项三</td></tr>      
  6.   <tr><td>选项四</td></tr>      
  7.   <tr><td>选项五</td></tr>      
  8.   </table>      
  9.   <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>      
  10.     
  11.   </div>       
  12.   <a   href="#"   onclick="document.getElementById('menu').style.visibility='visible'">菜单</a>     

       我们可以看到在设置style 的时候width:expression(this.parentNode.offsetWidth);表达式的方式。this.parentNode.offsetWidth就代表div的宽度

分享到:
评论
2 楼 xiaokang1582830 2011-12-07  
我也遇到了同样的问题!之前在添加页面中这个问题都是可以解决,但是使用div构建下拉菜单时却出现了这样的问题!很是郁闷...
1 楼 sujj0010 2007-06-20  
效果不错,解决了我一部分问题,谢了.

相关推荐

Global site tag (gtag.js) - Google Analytics