【ie相容性】ie10及以下帶img的absolute定位,導致點選事件無效
之前一直聽說ie瀏覽器對absolute定位不相容,但從未發現哪不相容,這次算是遇大坑了。
原來ie並不是對單個absolute樣式不相容,而是跟其他東西聯絡在一起時會出現一下莫名奇妙的問題,如本人剛遇到的:
“定位後的div中加入img和div,子div若不加背景色,點選事件(任何事件)無效”
(如果你遇到一定要加背景色,點選事件才生效的情況,可能就是這原因)
示例:
html:
<div class="a1">
<img src="http://www.baidu.com/img/bd_logo1.png" />
<div class="ared"></div>
<div class="ablue"></div>
</div>
css:
.a1{
width:400px;
height:200px;
position: relative;
border:1px solid blue;
}
.ablue{
width:170px;
height:200px;
position: absolute;
border:10px solid blue;
left:0;
top:0;
}
.ared{
border:10px solid red;
width:170px;
height:200px;
position: absolute;
right:0;
top:0;
}
js:
$(".ared").click(function(){
alert("red");
});
$(".ablue").click(function(){
alert("blue");
});
$(".a1>img").click(function(){
alert("img");
});
效果如下:
1、點選藍邊框彈出blue,點選紅邊框彈出red。(符合正常邏輯)
2、點選邊框內部彈出img。(非正常邏輯,chome中彈出正常)
正常情況下,點選邊框內容彈出的內容應該與點選邊框彈出的內容一致,但是ie卻識別為點選的是底部圖片。
原因:
個人認為,此種情況下,ie識別物件的時候只識別到了樣式中加了顏色的部分,邊框、背景,即便是透明背景也能識別。
(若去掉底部圖片,一切正常)
解決方法:
若遇到類似一定要用到img和absolute,並且要呼叫事件的情況,可採取以下辦法:
1、給div本身加透明背景色(前提是該div裡沒有內容,否則內容也會被透明)
2、在圖片與div之間再加一層帶有透明背景色的div,如:
<div class="a1">
<img src="http://www.baidu.com/img/bd_logo1.png" />
<div style="background:#fff;opacity:0;position: absolute;width:100%;height:100%;top:0"></div>
<div class="ared"></div>
<div class="ablue"></div>
</div>
(ps:有時候背景色真的能解決大問題,之前也遇到過類似莫名奇妙的問題)
相關文章
- IE10帶您走進HTML5時代IE10HTML
- 導致SSL證書無效的原因有哪些?
- 如何處理快取導致的無效曝光快取
- IE10與IMG圖片PNG顯示不了 WP中的WebBrowser中無法檢視PNG格式的圖片IE10Web
- 微軟列舉IE10的十大亮點微軟IE10
- javascript的img圖片IE下onload事件第二次無法觸發JavaScript事件
- parseInt()方法在IE8和IE8以下瀏覽器的相容性問題瀏覽器
- ie 9 背景透明的空白元素無法點選
- IE10 輸入taobao域名後無反應問題IE10
- 定位時使用 UiScrollable 無效?UI
- ZT 定位導致物化檢視無法快速重新整理的原因
- CSS position:absolute 絕對定位CSS
- CSS position: absolute 絕對定位CSS
- ios10以下safari設定style無效iOS
- 如何定位導致Crash的程式碼位置
- multicast導致節點無法加入叢集AST
- 細數IE10裡的HTML5特性IE10HTML
- windows7版的IE10正式釋出!WindowsIE10
- android recyclerview 上下滑動導致點選事件和資料錯亂問題解決AndroidView事件
- absolute定位css元素居中的兩種方法CSS
- CSS深入理解之absolute定位CSS
- Win10系統開始選單點選無效的解決方法Win10
- 點選事件的委派事件
- javascript圍觀IE10中window物件的結構JavaScriptIE10物件
- css定位中position:absolute與float的區別CSS
- 微軟將在下週二正式放棄IE8、IE9和IE10微軟IE9IE10
- 滑鼠問題導致筆記本開機點選桌面和工作列無反應筆記
- 提升手持裝置點選速度之touch事件帶來的坑!事件
- swiper loop:true引發繫結dom的click事件無效及解決方案OOP事件
- 處理好item點選事件的gallery(畫廊)效果(無bug)事件
- 【問題處理】恢復因誤生成PFILE 導致RAC的SPFILE無效的問題
- IE與CSS相容性CSS
- databinding的點選事件事件
- 大量"library cache lock"事件導致資料庫無法連線事件資料庫
- IE9和IE9以下瀏覽器tbody無法使用innerHTML解決方案IE9瀏覽器HTML
- 前端~定位屬性position(relative、absolute、fixed)的分析前端
- win7系統下IE10網頁播放視訊沒有聲音重灌音效卡驅動無效如何解決Win7IE10網頁
- win7系統下IE10網頁播放影片沒有聲音重灌音效卡驅動無效如何解決Win7IE10網頁