Главная > Верстка > Проблема прозрачности PNG-файлов в IE6

Проблема прозрачности PNG-файлов в IE6

25 Ноябрь 2007 Михаил

Допустим у Вас на сайте пользователи постоянно добавляют прозрачные PNG. legend zen for sale nike air max 90 pas cher Есть несколько решений для устранения этой проблемы, я предоставлю 2:

  1. Используя механизм behavior
  2. По средствам JavaScript


1. Julio Jones Alabama Football Jerseys Используя механизм behavior

IE5+ поддерживает механизм behavior, Adidas Baratas не являющийся стандартом CSS, Chaussures Nike Pas Cher но позволяющий описать поведение стиля в зависимости от событий, Huston Street Jersey которые происходят при отображении Web-страницы. louboutin chine в CSS пишем img {behavior: url("pngbehavior.htc");} И создаем файл pngbehavior.htc со следующим содержимым <public:component lightWeight="true"> <public:attach event="onpropertychange" onevent="propertyChanged()" /> <public:attach event="onbeforeprint" onevent="beforePrint()" for="window"/> <public:attach event="onafterprint" onevent="afterPrint()" for="window"/> <script> var supported = /MSIE ((5\.5)|[6789])/.test(navigator.userAgent) && navigator.platform == "Win32"; var realSrc; var blankSrc = "/i/blank.gif"; /* Путь к прозрачному однопиксельному GIF-у */ var isPrinting = false; if (supported) fixImage(); function propertyChanged() { if (!supported || isPrinting) return; var pName = event.propertyName; if (pName != "src") return; // if not set to blank if (!new RegExp(blankSrc).test(src)) fixImage(); }; function fixImage() { // get src var src = element.src; // check for real change if (src == realSrc && /\.png$/i.test(src)) { element.src = blankSrc; return; } if ( ! new RegExp(blankSrc).test(src)) { // backup old src realSrc = src; } // test for png if (/\.png$/i.test(realSrc)) { // set blank image element.src = blankSrc; // set filter element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft." + "AlphaImageLoader(src='" + src + "',sizingMethod='scale')"; } else { // remove filter element.runtimeStyle.filter = ""; } } function beforePrint() { isPrinting = true; element.src = realSrc; element.runtimeStyle.filter = ""; realSrc = null; } function afterPrint() { isPrinting = false; fixImage(); } </script> </public:component> Только все png картинки должны иметь записи размеров width и height иначе они просто не будут показываться… Maglia Michael Jordan

2.

Categories: Верстка Tags: , ,