Вопрос по css – Как сохранить альфа-прозрачность PNG при использовании свойства «-ms-filter»

5

У меня есть следующий HTML:

<code><a><img src="myfile.png" /> Some text</a>
</code>

И это css:

<code>a:hover
{
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
    filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);
    opacity: .75;
}
</code>

Проблема с этим возникает как в IE 8, так и в IE 7.

Когда изображение PNG подпадает под действие -Ms-фильтр илифильт, его альфа-прозрачность разрушена. Попробуйте, и вы увидите. Это ошибка как в IE 8, так и в IE 7.

Могу ли я удалить свойства "-ms-opacity" и "filter", применяемые в CSS? Какой синтаксис для этого? (например, что-то вроде -ms-фильтр: "";)

Кто-нибудь знает обойти эту проблему?

Не думаю, что мы поняли твой вопрос. Не могли бы вы перефразировать это? Sasha Chedygov
@ SpliFF и соавт. - Может ли кто-нибудь добавить (или отредактировать) ответ, чтобы дать CSS, необходимый для создания png с отображением частичной прозрачности с непрозрачностью 75% в IE 7 и 8. Это оригинальный вопрос, и ответ не является полным. OrangeDog

Ваш Ответ

1   ответ
4

AlphaImageLoaderильтр @, примененный непосредственно к img, может переопределить Альфа-фильтр. Что касается удаления фильтра, вы пробовалиfilter:none; ?

Да, программно нацеливайтесь на IE6 и ниже с условными комментариями.

<!--[if lt IE 7]>
<style>a:hover{filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);}</style>
<![endif]-->

Также скрипты, как IE7-JS будет обрабатывать прозрачность PNG для вас, не загромождая ваш CSS нестандартным кодом.

<!--[if lt IE 7]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
<![endif]-->
Но проблема возникает в IE 8 даже: когда вы применяете в CSS свойства 'filter' или '-ms-filter', любая альфа-прозрачность PNG больше не работает. cbp
Извините, меня не интересует IE 6 - я пытаюсь заставить это работать в IE7 и IE8 при использовании css-свойств '-ms-filter' или 'filter'. cbp
Решение работает и для ie7. просто измените условие на lt IE8 и скрипт на ie8.js SpliFF
Круто, спасибо, что работает cbp
да .. хорошо, я неправильно понял вопрос. Возможно, попробуйте применить фильтр AlphaImageLoader непосредственно к изображению и посмотреть, переопределяет ли он фильтр Альфа на A. SpliFF

Похожие вопросы