Написать нам







Создаем сочные сайты!
+7 (499) 649-30-72
Написать нам
Создание сайтов






СОЗДАНИЕ САЙТОВ У НАС — ЭТО КАЧЕСТВО И РАЗУМНАЯ ЦЕНА. УБЕДИТЕСЬ САМИ!

ЗВОНИТЕ:
+7 (495) 974-15-75

Все статьи

Баг с прозрачностью картинок PNG в IE6. Решения

05.09.2010

О существовании бага разработчики браузера «Internet Explorer» признались на официальном сайте в бюллетене: «Не отображается прозрачность в файлах PNG в Internet Explorer». Цитируем с сайта:

При обзоре веб-страницы, содержащей изображение с прозрачным фоном формата Portable Network Graphics (PNG), фон изображения скорее будет отображаться серым, а не прозрачным.

Познакомьтесь с самыми простыми способами устранения этого недостатка.

1 способ. Откажитесь от прозрачности

Проще решения нет. Просто не используйте прозрачность в PNG, и Ваши картинки будет показываться корректно в любом браузере.

На заметку! Недостаток заключается в том, что не всегда можно отказаться от применения прозрачности без ущерба, например, для дизайна сайта. Часто, устранение одной простой проблемы приводит к череде гораздо более сложных и крупных неприятностей.

2 способ. Конвертируйте PNG в формат GIF

Если отказаться от использования прозрачности никак нельзя, то можно попробовать конвертировать изображение в другой подходящий формат.

Прозрачность поддерживают только два формата — PNG и GIF, поэтому рекомендуем пересохранить Ваше изображение в формат GIF. С отображением прозрачности в GIF-файлах проблем в браузере IE6 не наблюдается.

После конвертации файл будет иметь другое расширение, поэтому не забудьте обновить названия картинок в коде сайта.

На заметку! К сожалению, глубина цвета в файлах GIF хуже, чем в PNG, поэтому при конвертировании могут возникнуть неровности и обрывки на краях прозрачности. Не забудьте визуально проверить, достаточно ли качественно всё получилось. Очень часто конвертация сопровождается ухудшением качества изображения.

3 способ. Используйте скрипт jquery.pngFix.js на «jQuery»

Пожалуй, самое красивое решение задачи. Скачайте готовый плугин на «jQuery» с этого сайта. Закачайте его по FTP на свой сайт и пропишите в шаблоне страниц следующий код:

<script type="text/javascript" src="jquery-latest.pack.js"></script>
<script type="text/javascript" src="jquery.pngFix.js"></script>
<script type="text/javascript">
$(document).ready(function(){
  $(document).pngFix();
});
</script>

Код, приведённый выше, желательно разместить между тегами <head> и </head> на всех страницах Вашего сайта. Не забудьте скачать последнюю версию библиотеки «jQuery» (jquery-latest.pack.js) с официального сайта.

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

У данного решения есть один недостаток. Функция «pngFix» вызывается только в момент полной загрузки страницы сайта! Если на странице много картинок или посетитель использует медленное подключение к Интернету, то может наблюдаться интересный эффект:

  1. Пока страница сайта загружается, картинка PNG будет отображаться с ошибкой прозрачности;
  2. Как только страница полностью загрузится, например, через 4-7 секунд, то баг сразу же исправляется.

На заметку! Подобный эффект Вы можете наблюдать даже на нашем сайте. Понаблюдайте, как ведёт себя логотип «Ваш МАСТЕР» в шапке сайта при просмотре в браузере IE. Не знаем, как Вас, но нас это всё-таки немножко раздражает.

Мы привели наиболее простые и интересные решения данной проблемы. Для полноты картины, рекомендуем также почитать следующие статьи:

Надеемся, наша статья поможет Вам делать правильные сайты.

Ошибки бывают у всех, даже у «Майкрософт».


Ещё рекомендуем прочитать:

Зачем нужен сайт? Всё о пользе создания своего сайта
Разработчиков сайта Министерства обороны России подозревают в крупных хищениях
Создание простых сайтов
За создание сайта о культурном наследии России обещают 76 млн рублей
За апгрейд сайта госзакупок обещают 26 млн долларов

Внимание!
Цитирование авторских материалов допускается только при условии прямой гиперссылки на «Introweb.ru»!


К списку статей



+7 (495) 974-15-75