在項目中的問題,之前用的是用IETest測試IE7,8發現背景透明設置無效,後來找文章解決!看了一些資料,做下總結。 幾種IE半透明CSS樣式 IE8里可以這樣寫 -ms-filter:”progid:DXImageTransform.Microsoft.Alpha(opacity=50)”; IE
在項目中的問題,之前用的是
IE8里可以這樣寫 -ms-filter:”progid:DXImageTransform.Microsoft.Alpha(opacity=50)”;
IE7里可以這樣寫 filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);
IE6,IE7,IE8里都可以這樣寫 filter:alpha(opacity=50)
progid:DXImageTransform.Microsoft這種寫法很是難懂,看起來也煩,一般傾向filter:alpha(opacity=50)寫法;
看資料說前兩種寫法,是和MS的ActiveX技術一條路的,第三種看起來沒有ActiveX,但本質也還是ActiveX一路的;這個可以在安全選項裡面禁掉所有的ActiveX試試,包括這個濾鏡在內的所有IE濾鏡立刻就無效;
DIV背景透明有兩種
一種是DIV本身和內部元素全部透明,另外是DIV透明,子元素不透明
第一種解決方法是用background:
------------------------------
看了作者iefans的半透明失效文章,摘下了
png半透明失效的原因
IE7,IE8都是直接支持了png圖片的alpha的,這回我的IE8里的png半透明失效的原因不明,懷疑可能跟360Safe的某些動作有關,僅僅只是懷疑而已。
很多情況會影響到ie8的png效果,這回運氣比較好一點,在網上找到了方法,改了改註冊表,就解決了問題。這裡我們列舉幾種可能導致png註冊表選項被破壞的情形。
1.(原因:.png在瀏覽器沒有擴展值或出錯)
開始->運行-regedit,打開註冊表,HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerEmbedExtnToClsidMappings看.png存不存在。如果.png不存在,滑鼠點它的上一層,也就是EmbedExtnToClsidMappings,然後按滑鼠右鍵新建項,輸入.png,然後點.PNG,雙擊預設值,在數值數據那粘貼“clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B”。
這是我上次成功的方法,這次不行了!
2.(原因:.png在系統中的文件損壞)
使用 開始->運行,輸入 “regsvr32 c:windowssystem32pngfilt.dll”
如果在註冊時出現 “已載入 c:windowssystem32pngfilt.dll,但沒有找到DllRegisterSever 輸入點。無法註冊這個文件”,則表明這個文件可能損壞了,你要去別的機子去Copy一個好的過來覆蓋。再進行一次註冊。
3.(原因:我們偉大的Apple公司的QuickTime程式干擾了註冊表)
開始->運行->regedit,啟動註冊表,找到HKEY_CLASSES_ROOTMIMEDatabaseContent Type
將其中中文名的以及亂碼的都刪除即可如[視頻/mp4]。
4.(原因:註冊表信息錯誤!我這次就是這個問題,合併註冊表後,下麵的信息會自動覆蓋掉有問題的信息)
將下麵的內容存成.reg文件,然後右鍵->合併。
Windows Registry Editor Version 5.00
;PNG file association fix for Windows XP
;Created on May 17, 2007 by Ramesh Srinivasan
[HKEY_CLASSES_ROOT.PNG]
“PerceivedType”=”image”
@=”pngfile”
“Content Type”=”image/png”
[HKEY_CLASSES_ROOT.PNGPersistentHandler]
@=”{098f2470-bae0-11cd-b579-08002b30bfeb}”
[HKEY_CLASSES_ROOTpngfile]
@=”PNG Image”
“EditFlags”=dword:00010000
“FriendlyTypeName”=hex(2):40,00,25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,
00,6f,00,6f,00,74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,
32,00,5c,00,73,00,68,00,69,00,6d,00,67,00,76,00,77,00,2e,00,64,00,6c,00,6c,
00,2c,00,2d,00,33,00,30,00,35,00,00,00
“ImageOptionFlags”=dword:00000003
[HKEY_CLASSES_ROOTpngfileCLSID]
@=”{25336920-03F9-11cf-8FD0-00AA00686F13}”
[HKEY_CLASSES_ROOTpngfileDefaultIcon]
@=”shimgvw.dll,2″
[HKEY_CLASSES_ROOTpngfileshell]
@=”open”
[HKEY_CLASSES_ROOTpngfileshellopen]
“MuiVerb”=”@shimgvw.dll,-550″
[HKEY_CLASSES_ROOTpngfileshellopencommand]
@=”rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_Fullscreen %1″
[HKEY_CLASSES_ROOTpngfileshellopenDropTarget]
“Clsid”=”{E84FDA7C-1D6A-45F6-B725-CB260C236066}”
[HKEY_CLASSES_ROOTpngfileshellprintto]
[HKEY_CLASSES_ROOTpngfileshellprinttocommand]
@=”rundll32.exe C:\WINDOWS\system32\shimgvw.dll,ImageView_PrintTo /pt ”%1” ”%2” ”%3” ”%4”"
[HKEY_CLASSES_ROOTSystemFileAssociations.PNG]
“ImageOptionFlags”=dword:00000003
[-HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerFileExts.PNG]
[-HKEY_CLASSES_ROOTMimeDatabaseContent Typeimage/x-png]
[-HKEY_CLASSES_ROOTMimeDatabaseContent Typeimage/png]
[HKEY_CLASSES_ROOTMimeDatabaseContent Typeimage/x-png]
“Extension”=”.png”
“Image Filter CLSID”=”{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}”
[HKEY_CLASSES_ROOTMimeDatabaseContent Typeimage/x-pngBits]
“0″=hex:08,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,89,50,4e,47,0d,0a,1a,0a
[HKEY_CLASSES_ROOTMimeDatabaseContent Typeimage/png]
“Extension”=”.png”
“Image Filter CLSID”=”{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}”
[HKEY_CLASSES_ROOTMimeDatabaseContent Typeimage/pngBits]
“0″=hex:08,00,00,00,ff,ff,ff,ff,ff,ff,ff,ff,89,50,4e,47,0d,0a,1a,0a
[HKEY_CLASSES_ROOTCLSID{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}]
@=”CoPNGFilter Class”
[HKEY_CLASSES_ROOTCLSID{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}InProcServer32]
@=”C:\WINDOWS\system32\pngfilt.dll”
“ThreadingModel”=”Both”
[HKEY_CLASSES_ROOTCLSID{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}ProgID]
@=”PNGFilter.CoPNGFilter.1″
[HKEY_CLASSES_ROOTPNGFilter.CoPNGFilter]
@=”CoPNGFilter Class”
[HKEY_CLASSES_ROOTPNGFilter.CoPNGFilterCLSID]
@=”{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}”
[HKEY_CLASSES_ROOTPNGFilter.CoPNGFilter.1]
@=”CoPNGFilter Class”
[HKEY_CLASSES_ROOTPNGFilter.CoPNGFilter.1CLSID]
@=”{A3CCEDF7-2DE2-11D0-86F4-00A0C913F750}”
當PNG遭遇filter:alpha
IE系列的PNG問題是一個廣受詬病、由來已久、至今未較好解決的問題,從IE6的不支持到IE7/8的缺陷支持,算是有所進步,但還有很多不健全。比如大家可以試試當PNG遭遇filter:alpha的情況,非常奇怪的現象,PNG在IE7下出現黑色背景。
這個在藍色經典上有朋友說明瞭該問題,“出現背景變黑應該是給整個窗體設置了透明度導致,那麼對於IE7(可能還包括IE8)來說,它雖然提供了對半透明PNG的支持,但這種支持是不健全的。這種不健全的一種表現就是,當你為半透明PNG圖片(或使用半透明PNG作為背景的元素)設置透明度時,PNG圖片的半透明部分會顯示為黑色(但不透明部分的顯示是正常的)。
值得一提的是,IE 實現透明度是通過其私有的 CSS 濾鏡的方式,而非標準的 CSS3 屬性。而且IE透明濾鏡本身就是存在 bug 的,當然這裡就不多說了”