расставляй правильно приоритеты и не отвлекайся на мелочи

Полная поддержка формата PNG в IE 6

Хочу рекомендовать Вам отличный ресурс укротителя Internet Explorer’а и его решение извечной проблемы полной поддержки PNG формата для IE6. Как раз сегодня вышла улучшенная, обновленная версия этой реализации.

Ниже будет идти вольный перевод с оригинала.

Что работает и каковы особенности

  • Вы можете полноценно использовать 24-битные PNG изображения с прозрачностью в качестве фона (background-image) для Internet Explorer 6
  • Вы получаете поддержку работоспособности параметров background-position и background-repeat
  • Решение не использует AlphaImageLoader и поэтому корректно работает с z-индексом
  • Работает поддержка Javascript назначений для element.style и псевдокласса :hover
  • Размер скрипт файла ~7.5KB в обычном виде и ~6KB в сжатом
  • Легкость реализации:
    <!--[if IE 6]>
    <script src='DD_belatedPNG.js' type='text/javascript' />
    <script type='text/javascript'>
        DD_belatedPNG.fix('.png_bg'); //EXAMPLE
    </script>
    <!--[endif]-->
    

Что не работает

  • Нельзя использовать ‘body’ как CSS селектор аргумента в функции fix()
  • Еще не готова реализация для background-position: fixed;

Как это работает

Скрипт эксплуатирует язык Microsoft VML, в котором реализована поддержка PNG формата. Он обходит все элементы согласно заданного CSS селектора и собирает данные об их размерности и стилистике. Выполнив такую сборку он формирует соответствующие VML <DD_belatedPNG:rect/> ноды для каждого из элементов и применяет их к элементам через (element.insertBefore).

Как это использовать

  1. Сперва подключите скрипт DD_belatedPNG.js (см. пример выше).
  2. Затем вызовите функцию DD_belatedPNG.fix(), в параметрах которой обязательно укажите CSS селектор (как правило это класс) объектов, которые содержат PNG изображения.

Сам скрипт поддержки PNG Вы можете взять на сайте-источнике.

К сожалению более элегантной и подходящей пилюли, которая бы вылечила IE6 от аллергии к PNG формату я думаю нет и не будет, а вот вылечить или защитить Ваш компьютер от вирусов вполне возможно с помощью антивирус касперского 2008.

Почитать еще по данной теме :