PNG в IE 6

Дата: 24.10.2009
Категории: HTML и CSS Дизайн

Как известно Internet Explorer 6 и версии ниже неправильно отображают файлы формата PNG 24bit, фон изображения скорее будет отображаться серым. Это конечно же не куда не годится. PNG с альфа-каналами позволяет значительно улучшить внешний вид дизайна сайта.

Так как в основном PNG с альфа-каналами используются для дизайна страницы, то нет особых проблем написать одну лишнюю строчку в стиле к элементу дизайна.

Решение 1

Решение можно найти на официальном сайте Microsoft. Решение заключается в использовании фильтра AlphaImageLoader и добавлении в стиль следующего:

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

Но меня это решение не устроило. Opera, FireFox и другие популярные браузеры, по всей видимости, не имеют фильтра AlphaImageLoader, и не отображают изображение вообще. А если помимо этого фильтра добавить в стиль Background, то появляются проблемы в IE.

Решение 2

Это решение немножко посложнее и автора этого решения сейчас уже сложно найти.

Итак, нам потребуется прозрачный GIF размером 1?1 px. И файл с кодом pngfix.htc. Скачиваем эти файлы отсюда.

Копируем файл n.gif в директорию с сайтом (куда вам удобнее). Файл pngfix.htc аналогично.

Далее в файле pngfix.htc указываем в строчке

if(typeof blankImg == 'undefined') var blankImg = '/Graph/n.gif';

путь до GIF файла.

Например, на моем сайте нужно было копировать файл в папку public_html. Тоесть скопировать так, чтобы файл был доступен по пути yoursite.ru/pngfix.htc

Далее в стиль, где используется png, пишем:

behavior: url(путь_к_файлу/pngfix.htc);

Если файл в корне сайта, то путь будет только pngfix.htc.

Можно определить класс:

.png{
   behavior: url(путь/к/файлу/pngfix.htc);
}

И использовать его, например, так:

<img src="путь_к_изображению.png" class="png" />

Решение 3

Про еще одно решение, на мой взгляд лучше тех которые я описал выше, читаем в статье «PNG в IE 6»

Коментарии отсутствуют