遇到了IE6 select遮擋div的bug,這個bug表現爲頁面有浮動元素(某個div元素)在select上面時,在IE6裏面select老是顯示在這個浮動元素上方,該元素z-index的值多大都沒有做用。javascript
解決的思路是:IE6中iframe能夠覆蓋select,而div能夠覆蓋iframe,因此解決辦法就是使用iframe元素包裹或者覆蓋select元素或浮動元素,或者在select元素或浮動元素添加一個Iframe做爲子元素。
html
方法一:Iframe包裹select元素
使用iframe包住select,這樣iframe有z-index,只要在div上設置的z-index比iframe的高便可~這種方法有必定的侷限性,不可能每一個select都要加個iframe吧?因此不推薦java
代碼以下:git
1 <iframe style="z-index:1" style="z-index:1"><!-- 用iframe 解決此bug —> 2 <select name="country」> 3 <option value="1">china</option> 4 <option value="2">japanese</option> 5 <option value="1">U.S.A</option> 6 </select> 7 </iframe>
方法二:以Iframe做爲div的子元素,覆蓋select元素
創建一個跟div同寬同高的iframe,而且z-index比div要低。這種方法推薦使用
代碼以下:github
1 <style>.T_iframe { 2 position: absolute;/*絕對定位保證iframe不會佔用流佈局空間*/ 3 width: 100%; /*100%保證能夠覆蓋整個div*/ 4 height: 100%; 5 z-index:-1; /*-1保證iframe顯示在div下方*/ 6 } 7 .T_div { 8 position: absolute; 9 left:100px; 10 top:50px; 11 width: 300px; 12 height: 200px; 13 background : blue; 14 z-index:100; 15 } 16 </style> 17 <div class="T_div"> 18 <span>這裏能夠包含其餘dom元素</span> 19 <iframe class="T_iframe"></iframe> 20 </div>
方法三:使用jQuery的bgiframe插件 若是項目引用了jQuery,推薦使用bgiframe插件來解決select的遮擋div問題,原理很簡單,就是創建一個同高同寬的iframe插入到浮動元素裏面,讓iframe覆蓋下面的select元素。
bgiframe下載地址:https://github.com/brandonaaron/bgiframe
代碼以下:
dom
1 $(‘#dialog').bgiframe({width: '245px', height:'230px'});// dialog爲上方浮動元素的id
參數說明:
top:設置top位置,默認爲auto
left:設置left位置,默認爲auto
width:設置iframe寬度,默認爲auto
height:設置iframe高度,默認爲auto
opacity:設置是否透明,默認爲true
src:設置iframe的src,默認爲javascript:false 佈局
資料來源:http://liuna718-163-com.iteye.com/blog/1796760spa
http://www.educity.cn/jianzhan/630261.html插件