Решение альфа-прозрачности в IE

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

5 ответов

Решение

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

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

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

Для прозрачности 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% непрозрачным или прозрачным, на черном фоне.

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

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

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

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

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

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

Другие вопросы по тегам