Как уже говорили другие, никакие IE-фильтры не совместимы с W3C. Они также несут значительные накладные расходы и имеют последствия для производительности. Если я не ошибаюсь, когда фильтр применяется к элементу HTML, он будет применяться ко всему в этом элементе, включая его текст. Таким образом, вы также получите полупрозрачный текст. Может быть, есть способ предотвратить это, но я не сталкивался с этим. Также бывают случаи, когда фильтры IE не очень хорошо работают с полупрозрачными PNG, как в этой статье упоминается .
Говоря о PNG, идея использования спрайта действительно работает, только если у вас есть конкретная высота или ширина или оба. Так что это действительно не сработает для того, что вам нужно, как сказал Мерианос Никос. Также мозаичное изображение 1x1 - действительно ужасная идея. Я говорю это потому, что при этом возникают проблемы с производительностью, особенно в IE6. Хотя IE6 может и не беспокоиться об этом, мозаика такого маленького изображения по-прежнему приводит к снижению производительности, поскольку браузер должен рисовать и перерисовывать все до единого. См. Эту запись StackOverflow .
В этой ситуации я бы использовал что-то вроде Modernizr , что сделает rgba доступным для использования в браузерах, которые не поддерживают rgba. После настройки загрузки только для rgba и нескольких других вещей (HTML5 shim, yepnope и добавление классов CSS) загрузка составила 6,1 КБ. Не слишком удачный способ облегчить разработку.
Обновление Я ошибся, когда сказал, что Modernizr включает rgba. Он этого не делает, но сообщит, что в браузере включена функция rgba. Он добавит классы к тегу html
, который расскажет вам о возможностях браузера.