решение альфа-прозрачности в IE - PullRequest
4 голосов
/ 05 декабря 2009

Я создаю веб-сайт с ТОННЫМИ файлами PNG-24 с прозрачным фоном. В IE 6 они явно отображаются неправильно, поэтому мне нужно какое-то надежное, хорошее решение, которое исправит проблему PNG в IE и потребует немного работы и будет надежным. Есть хорошие идеи?

Ответы [ 5 ]

2 голосов
/ 05 декабря 2009

Для прозрачности IE6 я следую за личным потоком:

1. Если есть только одно или два изображения PNG (например, логотип или обычное изображение), я просто использую filter:

#selector {background:none; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='test.png', sizingMethod='crop');}

Проблемы: Применительно к ссылке она больше не будет кликабельной. Возможно применить к h1#logo и сделать прозрачным a.

2. Если у меня много 24-битных файлов PNG или особых случаев использования (повторение фона и т. Д.), Я использую DD_belatedPNG

ВАЖНО ДЛЯ IE7 + IE8: Вы не можете анимировать или комбинировать filter:alpha (который используется для общего opacity элемента IE, а также используется jQuery для установки opacity) с 24-битными прозрачными изображениями PNG. Он меняется на 8-битную прозрачность со всем, что не является непрозрачным на 100% или прозрачным, на черном фоне.

1 голос
/ 05 декабря 2009

Вот несколько хороших исправлений png для ie6:

http://labs.unitinteractive.com/unitpngfix.php

http://www.twinhelix.com/css/iepngfix/

1 голос
/ 05 декабря 2009

В сети много IE PNG исправлений , которые в основном все работают по одной и той же методике. Старые Internet Explorer не поддерживают альфа в PNG напрямую, но у них у всех есть фильтр, который делает это. Поэтому написание следующего кода как части css объекта помещает изображение в src на фон элемента:

filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='image.png');

Таким образом, вы можете легко отобразить прозрачность в Internet Explorer. Однако гораздо проще получить один из сценариев исправления png (в JavaScript) и включить его на свою страницу в условных комментариях. Тогда скрипт заставит все ваши изображения работать автоматически.

0 голосов
/ 05 декабря 2009

Мы использовали для этого Дина Эдвардса IE7 .(Так назвали до выхода IE7.) Это было хорошо для такого рода вещей.

0 голосов
/ 05 декабря 2009

В настоящее время есть много вариантов, чтобы заставить это работать. Стандарт заключается в применении DirectX-фильтра через CSS для изменения прозрачности PNG в IE6. Есть даже сценарии, которые автоматически делают это, когда веб-страница загружается из клиента IE6 или менее.

http://www.google.com/search?btnG=1&pws=0&q=transparent+png+ie6

...