Мерцание background-image при наведении мышки в IE6

Один из самых противных глюков Интернет Експлорера 6 заключается в том что если для элемента указан background-image в CSS, то при событии hover на этом элементе ИЕ6 будет каждый раз снова и снова подгружать картинку с сервера, а не использовать ту которую он сохраняет в кеше.

То есть, если в вашем дизайне есть меню, которому заданы фоновые изображения, то все они будут мерцать при наведении мыши на каждый элемент меню. Не эстетично и раздражает глаз. Я задался задачей найти элегантное решние проблемы и вот что я нашел на просторах сети: Эта браузерная ошибка решается минутной правкой настоек Apache сервера:

В файл httpd.conf добавляются следующие строки:

 ExpiresActive On
ExpiresDefault A18000
ExpiresByType image/gif A2592000
ExpiresByType image/jpeg A2592000
ExpiresByType image/png A2592000

Которые заставляют браузер кешировать файлы картинок сроком на 30 дней (2592000 секунд, при желании можно поменять), как это указано в спецификациях W3C а не так как этого хотят Мелкомягкие.

* Те у кого нет доступа к httpd.conf могут прописать эти строчки в .htaccess файле, в самом низу.

Затем нужно убедиться что в Апаче включен модуль mod_expires:

LoadModule expires_module modules/mod_expires.so

Вуаля! Все отлично заработало. Но есть один момент. Это решение не будет работать если ваши картинки грузятся с постороннего сервера.

Такое же решение для сервера IIS здесь (eng).

Источник там (eng).

Эта запись была опубликована в рубрике Браузеры. Вы можете следить за комментариями к этой записи.

Leave a Reply

Your email is never published nor shared. Required fields are marked *

*

You may use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>