煩人的IE7、8,半透明濾鏡(filter:alpha)失效、png半透明失效的解決辦法

来源:http://www.cnblogs.com/huaxili/archive/2016/03/08/5254814.html
-Advertisement-
Play Games

在項目中的問題,之前用的是用IETest測試IE7,8發現背景透明設置無效,後來找文章解決!看了一些資料,做下總結。 幾種IE半透明CSS樣式 IE8里可以這樣寫 -ms-filter:”progid:DXImageTransform.Microsoft.Alpha(opacity=50)”; IE


在項目中的問題,之前用的是用IETest測試IE7,8發現背景透明設置無效,後來找文章解決!看了一些資料,做下總結。

幾種IE半透明CSS樣式

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: rgba(255, 255, 255, 0.82);設置DIV樣式,子元素就不會透明瞭

另外是將DIV外再添加一個父DIV,父DIV設置相對,原DIV設置絕對位置用filter:設置透明;其他子元素放到原DIV同級位置,其他元素也設置position:absolute ,這也是一種解決辦法

 

------------------------------

看了作者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 的,當然這裡就不多說了”

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • atitit.TokenService token服務模塊的設計 1. Token的歸類1 2. Token的用途2 2.1. 訪問控制2 2.2. 編譯原理術語)編輯2 2.3. 數據處理2 1. Token的歸類 Token, 令牌,代表執行某些操作的權利的對象 訪問令牌(Access toke
  • Atitit.atijson 類庫的新特性設計與實現 v3 q31 1. V1版本---集成了多引擎1 2. V2版本新特性 --bsh腳本化2 3. V3版本新特性---迴圈引用解決使用fastjson2 4. prob目前jsonlib庫的存在的問題,2 4.1. 可能版本衝突,拋出ex2 4.
  • Atitit.跨語言 文件夾與文件的io操作集合 草案 1. Jdk原生的太難用了。。1 2. PS: apache commons-io包,FileUtils有相關的方法,IOUtils一般是拷貝文件。1 3. Java raw3 4. 獲取磁碟分區列表 驅動器列表4 5. ref4 1. Jdk
  • 最近一個項目用到Redis做數據緩存,使用Redis最重要的是寫配置文件,那麼要瞭解它的各個配置參數含義,今天整理了一下,發現有些參數不太明白,特貼出來請大家幫忙看看。 daemonize <yes|no>:是否以後臺daemon方式運行 # yes|no (default:no) pidfile
  • 這篇文章主要介紹了正則表達式表單驗證實例詳解的相關資料,大家可以參考下。首先給大家解釋一些符號相關的意義 * 匹配前面的子表達式零次或多次; ^ 匹配輸入字元串的開始位置;$匹配輸入字元串的結束位置 1. /^$/ 這個是個通用的格式。 2. 裡面輸入需要實現的功能。 \d 匹配一個數字字元,等價於...
  • 1 JavaScript中的with語句的作用是為逐級的對象訪問提供命名空間式的速寫方式, 也就是在指定的代碼區域, 直接通過節點名稱調用對象 初次接觸到with用法,是這樣一段代碼: 1 2 3 4 5 6 7 8 9 10 11 12 function validate_email(field,
  • css3背景顏色漸變屬性 相容性測試基礎環境為:windows系統;IE6.0+, Firefox4.0+, Chrome4.0+, Safari4.0+, Opera15.0+ 語法: <linear-gradient>:linear-gradient([ <point>,]? <color-st
  • 通過demo對ECMAScript5中的嚴格模式(StrictMode)進行了學習併列舉出了幾個重要的限制條件
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...