IE6下 select z-index无效而遮挡div

在IE6下,select是一个浏览器控件,有一个诡异的bug,那就是z-index无效,当出现弹窗在select上面时,select会诡异的出现在你的最前面。

解决方法有三种:

1.用 iframe 包裹 select 元素

使用iframe包住select,这样iframe可以有z-index,只要在div上设置的z-index比iframe的高即可实现。示例代码如下:

  <iframe style="z-index:1;position: absolute; ">
    <select name="me">                    
      <option value="name">Darren聂微东</option>     
      <option value="sex">male</option>     
      <option value="age">secret</option>     
    </select>     
  </iframe>

2.以 Iframe 作为div的子元素,覆盖 select 元素(推荐使用)
建立一个跟div同宽同高的iframe,并且z-index比div要低。

<style type="text/css">
#iframe{   
    position: absolute;
    width: 100%;
    height: 100%;
    z-index:-1;
}   
.text_div{   
    position: absolute;   
    left:100px;   
    top:50px;   
    width: 300px;   
    height: 200px;   
    background : blue;     
    z-index:100;   
}   
</style>
<div class="text_div">  
     <span>这里可以包含其他dom元素</span>  
     <iframe id="iframe"></iframe>  
</div>

注:在这里如果不加src属性,尽管iframe会把select挡住,但是由于默认iframe为白色,会影响原来的div背景色。解决方法可以加了一个空的HTML文件,并把body 的值设为和原来div背景色一致,这样就解决了默认白色背景色的问题,这里只是一种思路,办法总比困难多 ^_^。

3.点击弹窗是设置其他不影响布局的select隐藏。

$(‘select’).css(‘visiblity’,’visible’);

然后再关闭弹窗时再显示出来。

 


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流