position:fixed в ie6 // Блог непонятно кого

No public Twitter messages.


Этот блог устарел и, скорее всего, больше не будет обновляться. В ближайшем будущем он переедет сюда.
19 января 2011 // Веб-разработка

position:fixed в ie6

Как известно, ie6 не поддерживает css-правило position: fixed, для иммитации существует вот такой несложный хак:

#some {
    position: fixed;
    top: 10px;
    left: 10px;
    width: 100px;
    height: 100px;
}
/* эмуляция position: fixed */
* html #some {
    position: absolute;
    top: expression(document.getElementsByTagName( 'body' )[0].scrollTop + "px");
    left: expression(document.getElementsByTagName( 'body' )[0].scrollLeft + "px");
    margin-left: 10px; /* эмуляция top: 10px; */
    margin-top: 10px; /* эмуляция left: 10px; */
}

У этого хака известен один досадный баг — из-за постоянного и очень неспешного пересчёта координат див будет постоянно дёргаться. Решается эта проблема полным сносом доктайпа со страницы. В некоторых случаях, кстати, этот костыль вообще не работает при наличии доктайпа на странице. Падений браузера и прочих критических проблем при использовании костыля не замечено.

Присутствует также ещё один минус — свойства bottom и right реализовать получится только дополнительным js-кодом. Для проектов использую jQuery, по-этому для имитации, например, bottom: 10px; вполне прокатывает конструкция $("#some").css("margin-top", ($(window).height() - 10) + "px");.



  • twitter
  • rss
  • хабр
  • жежека
  • ластфм