position:fixed для ИЕ6
Дата публикации: 24.03.2010
Задача
Проэмулировать CSS свойство position: fixed для IE6, которое всеми «любимый» браузер ни в какую понимать не хочет.
Решения
Для эмуляции будем использовать expression, который будет вычислять положение нашего блока при любых изменениях размеров или положения страницы. Для этого можно использовать три варианта:
* html .fixedBlock{ /*хак для ИЕ6*/ position: absolute; top: expression(eval(document.body.scrollTop) + "px"); }
* html .fixedBlock{ /*хак для ИЕ6*/ position: absolute; top: expression(parseInt(document.body.scrollTop, 10) + "px"); }
* html .fixedBlock{ /*хак для ИЕ6*/ position: absolute; top: expression(document.getElementsByTagName("body")[0].scrollTop + "px"); }
Наиболее подходящим из вариантов я считаю последний, так как привязка к «document.body» работает только в Quirks mode(режим совместимости), для работы и в стандартном режиме работы браузера стоит привязываться к «document.documentElement» (он же document.getElementsByTagName(«body»)[0]). Последний вариант сработает в любом из режимов и поэтому более надежен.