Так как IE6 не поддерживает значение fixed свойства position, обычно для эмуляции данного эффекта используют position:absolute и CSS expression. Однако в результате при скроллинге или изменении размеров окна браузера возникали небольшие подёргивания фиксированного блока.

#fixed{
  position:fixed;
  left:0;
  top:0
}
#fixed{ /* Стили для IE6 */
  position:absolute;
  top:expression(eval(document.documentElement.scrollTop))
}

Видимо IE имеет несколько этапов рендеринга страницы. Сначала браузер заново перестраивает содержимое и уже после обрабатывает CSS выражения, что и приводит к подёргиваниям.

Решение заключается в том, чтобы добавить элементу html или body фоновое изображение. В результате браузер сперва обработает таблицу стилей, а после перерисует страницу. Это, в свою очередь, сделает перемещение фиксированного блока плавным.

В качестве значения background можно использовать about:blank.

html{
  background:url(about:blank)
}

11 комментариев к статье «Position fixed в IE6»:

  1. Мне нравится такой вариант: http://ryanfait.com/resources/fixed-positioning-in-internet-explorer/
    И никаких expressions

  2. Я делал без всяких expression, не люблю такие штуки.
    Пример можно посмотреть на одном из моих заброшенных блогов – http://dummp.blogspot.com/
    P.S. Блог у тебя очень медленно открывается, надо хостинг менять, наверно.

    • Alex:

      За пример спасибо.

      P.S. Обычно блог достаточно быстро открывается, хотя иногда конечно бывают проблемы на хостинге.

  3. Прикольный шаблон на сайте. Откуда взяли? Мне кстать локализации от Гудвина нравятся. Советую

  4. 2Alex, взяла на заметку, хотя уже много перешло на восьмую версию, а в ней такой проблемы нет

  5. Надежда:

    Спасибочки, то, что нужно было :)

  6. gps:

    А как в ИЕ 6 сделать 100% что бы он не вылезал за рамки …….

  7. я вот нашел другой способ, только картинка плавает по шаблону http://ucozon.ru/dir/lentochka_k_9_maja_s_prava/8-1-0-1582

Оставь комментарий: