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]). Последний вариант сработает в любом из режимов и поэтому более надежен.

Возможны