Jan
7

IE6 Select元素无法被div等元素覆盖的bug解决办法

不指定
字体大小: | | RSS
分类: Favorites | 791 次阅读
      在页面设计时,经常会使用div制作蒙版或模拟弹出窗口,但在IE6下,当div下方有下拉列表框select元素的时候,下拉列表框会划破div显示在div之上,不论z-index设为何值均会出现此问题,可能由于下拉列表控件的弹出式下拉列表的原因导致Z轴高度失控。但是IE6有一个神奇的逻辑,div 无法覆盖select,但是iframe 可以覆盖select,而div可以覆盖iframe,所以解决办法就是用Z轴高度更高的Iframe元素,包裹或覆盖住下拉列表框控件,使其回到正常的Z轴高度上来!

解决办法一:Iframe包裹select元素
<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元素
.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;  
}  
<div class="T_div">  
     <span>这里可以包含其他dom元素</span>  
     <iframe class="T_iframe"></iframe>  
</div>  

转自:http://www.cnblogs.com/stu-acer/archive/2009/06/24/1510416.html

此外还有jQuery插件解决方案:
http://lxy19791111.javaeye.com/blog/285162
http://lxy19791111.javaeye.com/blog/285177
分享此文:
Tags: , ,
操作: 评论(0) | 引用(0)

Leave A Word:

打开HTML 打开UBB 打开表情 隐藏
记住我 [登入] [注册]