看一下突出显示的CSS规则。 它通过Star(*)html hack专门针对IE5和6,它将帮助我们模拟传统IE5 / 6浏览器中的固定定位。 首先,我用IE理解的东西覆盖默认的“position:fixed”声明,“position:absolute”。 然后,通过使用动态表达式,我得到它的“顶部”属性以自动更新自身,因此它总是在浏览器窗口的左上角视图下方“50px”:
top:expression(document.compatMode ==“CSS1Compat”?document.documentElement.scrollTop + 50 +“px”:body.scrollTop + 50 +“px”);
现在,即使你一般熟悉IE的动态表达式,上面的行仍然看起来有点令人困惑 - 为什么里面的条件运算符和两个不同的值设置相应? 那么,根据您的页面是否在最顶层包含有效的doctype声明,在IE中引用正文的某些测量属性的语法(例如“scrollTop”属性)略有不同。 上述动态表达考虑了两种可能性。 请注意,我已经省略了将“left”属性设置为IE中的动态表达式,这使得该页面不包含任何水平滚动条以保证此属性是动态的。 但是,如果你想宣布它,
left:expression(document.compatMode ==“CSS1Compat”?document.documentElement.scrollLeft + 10 +“px”:body.scrollLeft + 10 +“px”);
无论如何,最终结果是在所有主流浏览器中在页面上保持静态的DIV,尽管在IE5 / 6中有一些犹豫,因为它是通过程序模拟而不是100%平滑的。 但这是一个可接受的妥协,并有助于克服在我们的网页上使用“position:fixed”的主要心理障碍!
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69933200/viewspace-2652726/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69933200/viewspace-2652726/