Решение альфа-прозрачности в IE
Я строю веб-сайт с ТОННЫМИ файлами PNG-24, которые имеют прозрачный фон. В IE 6 они, очевидно, отображаются неправильно, поэтому мне нужно какое-то надежное, хорошее решение, которое исправит проблему PNG в IE и потребует немного работы и будет надежным. Есть хорошие идеи?
5 ответов
Вот несколько хороших исправлений png для ie6:
Для прозрачности 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