it-swarm-vi.com

Làm cách nào để sử dụng PNG trong suốt trong IE6?

Làm cách nào để sử dụng PNG trong suốt trong IE6? Tôi có một ứng dụng công ty phải sử dụng IE6 và phải sử dụng PNG, nhưng tất cả đều trong suốt như một màu trắng nhạt.

6
Mark Henderson

Có một jQuery plugin cho nó ở đây , hoặc đoạn script sau cũng làm rất tốt (chỉ cần gọi nó trong <body onload="">;

function fixPNG(){

    var arVersion = navigator.appVersion.split("MSIE")
        var version = parseFloat(arVersion[1])

        if ((version >= 5.5) && (version < 7) && (document.body.filters)) 


        {
           for(var i=0; i<document.images.length; i++)
           {
              var img = document.images[i]
              var imgName = img.src.toUpperCase()
              if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
              {
                 var imgID = (img.id) ? "id='" + img.id + "' " : ""
                 var imgClass = (img.className) ? "class='" + img.className + "' " : ""
                 var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
                 var imgStyle = "display:inline-block;" + img.style.cssText 
                 if (img.align == "left") imgStyle = "float:left;" + imgStyle
                 if (img.align == "right") imgStyle = "float:right;" + imgStyle
                 if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
                 var strNewHTML = "<span " + imgID + imgClass + imgTitle
                 + " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
                 + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                 + "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
                 img.outerHTML = strNewHTML
                 i = i-1
              }
           }
        }

}
7
Mark Henderson

IE6 hỗ trợ PNG trong suốt (nhưng không mờ). PNG chỉ phải được lưu ở định dạng PNG8. Nếu tất cả những gì bạn cần là một nền trong suốt và không phải là hiệu ứng hòa trộn, bạn không cần bất kỳ mã nào. Chỉ cần lưu dưới dạng PNG8.

6
Gareth Farrington

24 cách có một bài viết được viết tốt về vấn đề này:

http://24ways.org/2007/supersleight-transparent-png-in-ie6

1
Sean Moubry

Nếu bạn ổn với độ trong suốt giống như GIF (chỉ trong IE6), thì hãy sử dụng PNG8 + Alpha (được đánh dấu, nhưng với bán chính xác).

Nó cung cấp đầy đủ alpha trong tất cả các trình duyệt khác. Không yêu cầu Bộ lọc DX chậm và khó tính (trên đó tất cả Sửa lỗi IE6 PNG24 dựa trên).

Pháo hoa và pngnq/pngquant có thể lưu định dạng này (tôi đã viết Mac GUI cho họ).

Adobe Photoshop là phần mềm đáng chú ý duy nhất không hỗ trợ nó, nhưng bạn có thể xuất PNG24 và sau đó chuyển đổi nó.

1
Kornel