Эмуляция position: fixed в Internet Explorer 6

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

Чтобы исправить данное поведение этого браузера, достаточно добавить фоновое изображение для html или body и зафиксировать его:

html {
    background: url(about:blank);
    background-attachment: fixed;
}
#header, #footer {
    position: fixed;
    left: 0;
    top: 0;
}
#footer {
    top: auto;
    bottom: 0;
}
* html #header {
    position: absolute;
    top:expression((0 + (ignoreMe = document.documentElement.scrollTop
       ? document.documentElement.scrollTop
       : document.body.scrollTop
    )) + 'px');
}
* html #footer {
    top:expression((0-(footer.offsetHeight)+(document.documentElement.clientHeight
       ? document.documentElement.clientHeight
       : document.body.clientHeight
    )  + (ignoreMe = document.documentElement.scrollTop 
       ? document.documentElement.scrollTop
       : document.body.scrollTop))+'px'
    );
}

Источник: https://www.kobzarev.com/browser/emulation-position-fixed-in-internet-explorer-6/

Михаил Кобзарёв

Суровый русский тимлид. Жил в Магадане, в офисе московских веб студий и в Тульской деревне. Виртуозно знает WordPress, PHP, ООП, Vue.js и вот это вот все. Делает крутые высоконагруженные сайты, поэтому уже почти захватил весь рынок WordPress разработки в России. Не дает никому делать сайты без спроса. Ведет блог о разработке, дайджест в телеграмме и в ВК. Любит сиськи, баню и радиоэлектронику. 100% патриот (но это не точно). Тролль 542 уровня. Ездит в отпуск раз в 5 лет.

Добавить комментарий

%d такие блоггеры, как: