Черная рамка вокруг прозрачного PNG в IE8 - PullRequest
3 голосов
/ 06 августа 2011

У меня возникают некоторые проблемы с черной маленькой рамкой вокруг прозрачных файлов PNG .. в слайдере jquery в IE8. Он отлично работает во всех браузерах (включая IE6 и 7), но не в IE8.

вы можете увидеть это здесь: http://www.socialogika.com/tabs/goliath/collection/

Я уже пробовал несколько исправлений, найденных здесь, на stackoveflow, но ни одно из них, похоже, не является решением (пока) ... переход на PNG-8 из 24 исправилпроблема для Ie6 & 7, но все еще есть проблемы в 8

Может кто-нибудь указать мне на рабочее решение?

Ответы [ 2 ]

1 голос
/ 06 августа 2011

Дайте мне знать, если это поможет: http://channel9.msdn.com/forums/TechOff/257324-IE7-alpha-transparent-PNG--opacity/

Я провел много исследований в IE7 png с проблемой непрозрачности и использовал два обходных пути, которые охватывают большинство, но, к сожалению, не все сценарии.

Первый из них уже упоминался в этой теме, в котором должны быть разные файлы изображений для разных необходимых значений прозрачности. Этот метод хорошо работает для эффектов наведения мыши и отключения мыши, когда вы просто хотите показать состояние, но, к сожалению, бесполезен, когда вы хотите анимировать прозрачность.

Второй метод будет работать большую часть времени, но это зависит от вашей разметки страницы и дизайна. Чтобы подделать анимацию непрозрачности div, вы можете поместить фиктивный второй div над реальным div, на котором вы хотите показать изменение непрозрачности. Второй div должен быть абсолютно позиционирован и принимать ширину и высоту фона div. В зависимости от дизайна вашей страницы вы затем назначаете ему цвет фона (который лучше всего подходит для реального фонового изображения png), и вы анимируете непрозрачность этого div, чтобы постепенно увеличивать или уменьшать его в зависимости от эффекта, который вы ищете.

Поскольку вы все равно будете использовать javascript для анимации непрозрачности, просто создать и вставить новый div, когда требуется эффект, и удалить его, как только вы закончите. Это позволяет фактическому содержимому div'ов по-прежнему копироваться и вставляться или щелкаться правой кнопкой мыши посетителями сайта.

Также, возможно, попробуйте подтвердить мою догадку, что из-за непрозрачности отображается черная граница: отключите все эффекты затухания и дайте мне знать, правильно ли отображаются изображения.

0 голосов
/ 06 августа 2011

Ну ... попробуйте использовать

.fadeTo ()

DEMO

В любом случае вы можете использовать это маленькое исправление:

$('#mages img').css({background: '#EDE7DE'});

Или создайте оператор if для IE, в котором вы просто добавляете .fix к нужным изображениям..Fix находится в вашем CSS-файле, добавляя к изображениям фон нужного цвета.

if ($.browser.msie && $.browser.version <= 8 )
{
$('#gallery img').addClass('fix');
}
...