使用濾鏡設(shè)置透明導(dǎo)致 IE 6/7/8/9 解析異常的解決方法
<div style="width:100px;height:100px;background:gold"></div>
用IE開(kāi)發(fā)者工具,或IE8自帶的開(kāi)發(fā)者工具。結(jié)構(gòu)如 圖1 :

紅色所圈之處可以看到給div添加的內(nèi)聯(lián)樣式width,height,background都依次排列。正常!
但給該div添加filter:alpha(opacity=20)后,
<div style="filter:alpha(opacity=20);width:100px;height:100px;background:gold">
</div>
情況發(fā)生了變化,如 圖2 :

紅色所圈之處看到,width和filter擠在一行上了。正常的情況width應(yīng)該另起一行。
有人也許會(huì)說(shuō)這只是開(kāi)發(fā)者工具沒(méi)有正確顯示,只要不影響頁(yè)面元素正確渲染即可。
的確,在IE6/7/8/9 中該元素寬度、高度、背景色及透明度都能按設(shè)置所期望的渲染,顯示。如圖:

此外,將樣式寫(xiě)在style標(biāo)簽內(nèi)或css文件中也會(huì)出現(xiàn)以上現(xiàn)象。
再看下JS設(shè)置filter,情況稍有不同。代碼如下:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>IE 6/7/8/9 中JS設(shè)置filter</title>
</head>
<body>
<div id="d1" style="width:100px;height:100px;background:gold"></div>
<script type="text/javascript">
var d1 = document.getElementById('d1');
d1.style.filter = 'alpha(opacity=20)';
</script>
</body>
</html>
IE中查看結(jié)構(gòu),效果如 圖2 ,即filter和width在一行。
注意以上html中的最后一句js代碼
d1.style.filter = 'alpha(opacity=20)';
右小括號(hào)后沒(méi)有加分號(hào)?,F(xiàn)在該句稍改下(的確是稍改,只加了個(gè)分號(hào))
d1.style.filter = 'alpha(opacity=20);';
即在由小括號(hào)后加了個(gè) 分號(hào) ";" 。 這時(shí)查看IE開(kāi)發(fā)者工具如 圖3 :

紅色所圈之處看到四個(gè)css屬性background、filter、height和width單獨(dú)在一行顯示。而沒(méi)有像 圖2 中filter和width在一行顯示。
PS:很多流行JS庫(kù)設(shè)置透明的方法沒(méi)有加 alpha(opacity=20)后的分號(hào)。
相關(guān)文章
小議Function.apply()之二------利用Apply的參數(shù)數(shù)組化來(lái)提高 JavaScript程序性能
小議Function.apply()之二------利用Apply的參數(shù)數(shù)組化來(lái)提高 JavaScript程序性能...2006-11-11
javascript中的float運(yùn)算精度實(shí)例分析
javascript中的float運(yùn)算精度的一些問(wèn)題,下面是具體的說(shuō)明。2010-08-08
javascript 判斷頁(yè)面訪問(wèn)方式電腦或者移動(dòng)端
這篇文章主要介紹了 判斷頁(yè)面訪問(wèn)方式電腦或者移動(dòng)端的相關(guān)資料,這里提供了三種方法,需要的朋友可以參考下2016-09-09
Electron 結(jié)合 Selenium + chromedriver 
這篇文章主要介紹了Electron 結(jié)合 Selenium + chromedriver 驅(qū)動(dòng)服務(wù)實(shí)現(xiàn)瀏覽器多開(kāi)思路詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-07-07

