| Андрей Шитов
Полноценный fixed в MSIE 26 марта 2007 |
| Задача. | Показать то, чего не хватает способам эмуляции CSS-правила position: fixed. | ||
О том, какой код нужно написать для MSIE в стилях страницы, чтобы сделать блок с фиксированной позицией, давно известно. Технологи студии пользуются разными способами решения этой задачи — каждый своим любимым.
top: expression(document.body.scrollTop + "px"); Но такой простейший вариант не работает,
top: expression( eval(document.body.scrollTop) + "px" );
top: expression(
document.getElementsByTagName("body")[0].scrollTop + "px"
);
top: expression( parseInt(document.body.scrollTop, 10) + "px" ); | См. заметку «Фиксирование элемента в окне IE» |
Этот блок остается на месте при вертикальной прокрутке и
в MSIE.
Решение, придуманное Ромой Воронежским и Юрой Васильчиковым, непостижимо и просто — чтобы избавиться от дрожаний, нужно зафиксировать фон страницы: body
{
background: url('/n.gif') no-repeat;
background-attachment: fixed;
}
Файл n.gif — однопиксельная прозрачная картинка (ее, кстати, даже не обязательно держать на сервере). Показанный прием одинаково хорошо работает в браузерах MSIE уже начиная с пятой версии. Примечание. Нужно лишь помнить, что для MSIE 7 есть более простое решение для правильной работы свойства fixed — указание доктайпа. |