IE6 select z-index無效,遮擋div bug的解決方法
發(fā)布時(shí)間:2010-06-18 22:22:06 作者:佚名
我要評(píng)論

在最近的一個(gè)項(xiàng)目中,遇到了IE6 select遮擋div的bug,為了解決這個(gè)bug我查了很多資料,試圖找到一個(gè)最最有效的方法,很多人是通過iframe的方法來解決,其實(shí)我查了國(guó)外的很多資料也是通過iframe的方法來解決的。
今天我說說iframe解決的一般方法,已經(jīng)使用jQuery插件bgiframe解決IE6 select z-index無效,遮擋div的bug。
解決方法之一:Iframe包裹select元素
使用iframe包住select,這樣iframe有z-index,只要在div上設(shè)置的z-index比iframe的高即可~這種方法有一定的局限性,不可能每個(gè)select都要加個(gè)iframe吧?所以不推薦!代碼如下:
<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元素
建立一個(gè)跟div同寬同高的iframe,并且z-index比div要低。這種方法推薦使用:
<style>.T_iframe
{
position: absolute;/*絕對(duì)定位保證iframe不會(huì)占用流布局空間*/
width: 100%; /*100%保證可以覆蓋整個(gè)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;
} </style>
<div class="T_div">
<span>這里可以包含其他dom元素</span>
<iframe class="T_iframe"></iframe>
</div>
解決方法之三:使用jQuery的bgiframe插件
如果你的項(xiàng)目引用了jQuery,那么我推薦使用bgiframe插件來解決select的遮擋div問題,原理很簡(jiǎn)單,就是建立一個(gè)同高同寬的iframe插入到div中去~bgiframe下載地址:http://github.com/brandonaaron/bgiframe,使用方法:
$('.fix-z-index').bgiframe();
參數(shù)說明:
top:設(shè)置top位置,默認(rèn)為auto
left:設(shè)置left位置,默認(rèn)為auto
width:設(shè)置iframe寬度,默認(rèn)為auto
height:設(shè)置iframe高度,默認(rèn)為auto
opacity:設(shè)置是否透明,默認(rèn)為true
src:設(shè)置iframe的src,默認(rèn)為javascript:false
解決方法之一:Iframe包裹select元素
使用iframe包住select,這樣iframe有z-index,只要在div上設(shè)置的z-index比iframe的高即可~這種方法有一定的局限性,不可能每個(gè)select都要加個(gè)iframe吧?所以不推薦!代碼如下:
復(fù)制代碼
代碼如下:<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元素
建立一個(gè)跟div同寬同高的iframe,并且z-index比div要低。這種方法推薦使用:
復(fù)制代碼
代碼如下:<style>.T_iframe
{
position: absolute;/*絕對(duì)定位保證iframe不會(huì)占用流布局空間*/
width: 100%; /*100%保證可以覆蓋整個(gè)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;
} </style>
<div class="T_div">
<span>這里可以包含其他dom元素</span>
<iframe class="T_iframe"></iframe>
</div>
解決方法之三:使用jQuery的bgiframe插件
如果你的項(xiàng)目引用了jQuery,那么我推薦使用bgiframe插件來解決select的遮擋div問題,原理很簡(jiǎn)單,就是建立一個(gè)同高同寬的iframe插入到div中去~bgiframe下載地址:http://github.com/brandonaaron/bgiframe,使用方法:
$('.fix-z-index').bgiframe();
參數(shù)說明:
復(fù)制代碼
代碼如下:top:設(shè)置top位置,默認(rèn)為auto
left:設(shè)置left位置,默認(rèn)為auto
width:設(shè)置iframe寬度,默認(rèn)為auto
height:設(shè)置iframe高度,默認(rèn)為auto
opacity:設(shè)置是否透明,默認(rèn)為true
src:設(shè)置iframe的src,默認(rèn)為javascript:false
相關(guān)文章
div層調(diào)整z-index屬性在IE中無效原因分析及解決方法
在寫css代碼時(shí)發(fā)現(xiàn)了一個(gè)很簡(jiǎn)單卻又很多人應(yīng)該碰到的問題,設(shè)置Z-INDEX屬性無效,要讓z-index起作用有個(gè)小小前提,就是元素的position屬性要是relative,absolute或是fixed2013-02-20- 非同輩元素,任意一者或其祖元素?fù)碛袆?dòng)態(tài)定位時(shí),同時(shí)各自向上尋找動(dòng)態(tài)定位的祖元素至共有的祖元素的下一級(jí)為止,并分別從中拿出具備最高級(jí)別的祖元素(或其本身)進(jìn)行比較2010-08-27
- 設(shè)置z-index時(shí)必須要固定位置,這樣設(shè)置它的值時(shí)才能奏效(例如 position:absolute;)下面是示例代碼,在ff3.5.5和ie5.5~ie8.0RC1中通過,大家可以嘗試著不固定其位置試試2009-11-26
- 下面小編就為大家?guī)硪黄猧e6 z-index不起作用的完美解決方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-09-09