正常情況下,在ie8下設(shè)置opacity是無效的,ie8下的兼容設(shè)置是:
opacity:.5; filter:alpha(opacity=50);
一般情況下是沒有問題的,像jpg,gif之類的,但是當圖片是png格式且背景透明,邊界是不均勻的半透明圖片(比如三角形)時,filter設(shè)置會使圖片出現(xiàn)雜邊,(像正方形這種邊界整齊的圖片不會出現(xiàn)這個問題)如圖:


所以比較這兩張圖片的邊界差異:


從網(wǎng)上搜索一些解決方法嘗試效果:
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src="******.png", enabled=true, sizingMethod=scale);? 這種方法可以去除雜邊,但也會使opacity失效,想要設(shè)置圖片透明過度是無效的。相當于沒有設(shè)置opacity,總結(jié)來說相當于是無效的,因為ie8本身是支持png24的圖片顯示的。
filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);同filter:alpha(opacity=50);效果一樣,雜邊依然存在。
-ms-filter:progid:DXImageTransform.Microsoft.Alpha(opacity=50);? 這種設(shè)置貌似是無效的。
所以個人認為,ie8下僅用css無法設(shè)置透明背景圖片的opacity過度效果,可以通過visibility或display來做簡單的隱藏顯示效果。
通過js配合可能能實現(xiàn)吧,后續(xù)考慮一下。