Для IE6 устраняем flickering — обращение к серверу
Дата публикации: 08.02.2009
Последнее обновление: 09.02.2009
Проблема
В IE6 при наведении на ссылку, содержащую фоновый рисунок, возле курсора появляются на мгновение песочные часы — это Internet Explorer 6 загружает картинку с сервера, т.к. не умеет такие картинки кэшировать. Этот баг назвали flickering или «дрожание фона». Пример. Особенно это раздражает, когда в ряд идет список ссылок.
Решение 1 — javascript
Это одно из лучших решений, несмотря на использование javascript. Автор Dan Popa. Преимущеста:
- простота
- никаких ограничений на использование фоновых изображений (можно использовать background-repeat, background-position)
- валидный код
Недостаток:
- использование javascript
<script type="text/javascript">
try {
if(navigator.userAgent.indexOf('MSIE'))
document.execCommand('BackgroundImageCache', false, true);
} catch(e) {}
</script>
Решение 2 — filter
Автор тот же. Преимущества:
- простота
- никаких ограничений на использование фоновых изображений (можно использовать background-repeat, background-position)
Недостатки:
- замедляет работу браузера
- не проходит валидацию
CSS:
html {
filter: expression(document.execCommand("BackgroundImageCache", false, true));
}
Существует еще ряд методов, которые не впечатлили — посмотреть можно тут и тут.
Теги: баги IE6
Показать комментарии