通过动态表达式修复IE(5和6)中的内容(2)

看一下突出显示的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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值