Излишки в ie7 и ie8 означают прозрачность при использовании прозрачности PNG и непрозрачности - PullRequest
2 голосов
/ 17 октября 2010

Я занимаюсь разработкой проекта, в котором используются прозрачность PNG и непрозрачность, но в IE7 и IE8 область имеет избыток, а не прозрачная, она черная, кто-то может мне помочь?

printобласти

Спасибо

Ответы [ 3 ]

1 голос
/ 23 ноября 2010

У меня есть решение для этого, я уже использовал на нескольких сайтах.

Просто запустите эту функцию после того, как ваш HTML-контент был записан на страницу:

function fixPNGs(){
  if(jQuery.browser.msie && jQuery.browser.version < 9){ 
    var i;
    //alert(document.images.length);
    for(i in document.images){
      if(document.images[i].src){
        var imgSrc = document.images[i].src;
        if(imgSrc.substr(imgSrc.length-4) === '.png' || imgSrc.substr(imgSrc.length-4) === '.PNG'){
        document.images[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='crop',src='" + imgSrc + "')";
        }
      }
    }   
  }
}

Он будет работать только с элементами img, а не с фоновыми изображениями.Но после применения вы можете добавлять и выводить изображения и анимировать содержимое своего сердца.Я испытал какой-то странный побочный эффект на некоторых амбициозных анимациях, но в 90% случаев это нормально.

Надеюсь, это поможет вам!

W.

1 голос
/ 17 октября 2010

IE7 и IE8 поддерживают различные типы прозрачности в PNG.Никаких проблем с этой стороны.

Проблема, с которой вы сталкиваетесь, - это IE7, а IE8 не поддерживает прозрачность CSS.И, скорее всего, у вас есть JS-скрипт, который динамически манипулирует непрозрачностью (element.style.opacity), например, чтобы создать эффект затухания.А как работает скрипт для изменения element.style.opacity в IE7 и 8, если они не поддерживают прозрачность?Он использует фильтр DirectX на месте, то же самое, что вы можете использовать фильтр CSS: альфа (opacity = 50);

Фильтр DirectX не является встроенной поддержкой.Следствием этого является то, что часто это побочные эффекты.Элемент будет отображаться с частичной непрозрачностью, он не будет отображаться графическим движком «обычного» браузера, но напрямую DirectX ... с различиями в рендеринге шрифтов при позиционировании CSS в некоторых случаях и ... поддерживает прозрачность PNG.

Решение: исключить один из двух параметров.

0 голосов
/ 31 июля 2011

Важно отметить, что фильтр ALPHA в IE7 не будет работать без установки WIDTH.

...