打開ExtJS 4.0的desktop示例,在FireFox, IE 8等瀏覽器中均可以顯示桌面圖標,而在IE 6.0中無法顯示PNG圖標,甚至出現IE6非法操作的錯誤。CSS代碼片段如下:
.notepad-shortcut {
background-image: url(./images/notepadLarge.png);
width: 46px;
height: 46px;
}
.x-ie6 .notepad-shortcut {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./images/notepadLarge.png', sizingMethod='scale');
}
參考了一些關於DXImageTransform.Microsoft.AlphaImageLoader的文章,大部分是說濾鏡被禁用之類的錯誤,結果修改了還是無法顯示。
最後抱着試試看的態度,把src中的相對路徑改爲絕對路徑,如:
.x-ie6 .notepad-shortcut {
background-image: none;
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/extcss/images/notepadLarge.png', sizingMethod='scale');
}
竟然在IE中能夠正常顯示,並且IE也不會出錯(估計之後的“非法操作”也正是由於無法正確找到資源導致的)。
雖然解決了兼容性問題,但這樣寫絕對路徑也存在移植性差的問題。