你的位置:首页>>Css/HTML教程>>网页设计技巧:跨浏览器的CSS固定定位
跨浏览器的CSS固定定位{position:fixed}
不知道您是否留意了,浏览本站时,浏览器右下角有一个标着top的黑色直角三角形,可以点击它返回到正在浏览的
实现代码如下:
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
……
#fixed{position:fixed;top:5em;right:0;……} /*针对IE7、Opera、Firefox一行搞定*/
/*IE6中利用容器对溢出内容的处理方式来实现的*/
html{overflow:hidden;}
body{height:100%;overflow:auto;}
#fixed{position:absolute;right:17px;}
/*fixed元素的绝对位置是相对于HTML元素来说,滚动条是body元素的,这是设置right:17px的原因*/
#fixed{position:absolute;top:expression(eval(document.body.scrollTop + 50));}
……
{position:fixed}
代码演示1(单个IE,纯粹通过条件注释区分IE浏览器)
代码演示2(多个IE,通过条件注释+CSS hack区分IE浏览器,明显的比纯粹条件注释复杂且不易读,放上来主要是便于同个PC拥有多个IE浏览器朋友[一般应该做是web开发的]可以直接看到
或许有人像我一样,在!DOCTYPE 声明是XHTML1.0 Strict或者是XHTML1.1时,喜欢在声明前面加上XML Prolog(如:),但此时IE7以下都处于quriks(兼容)模式,所以上述针对IE6的Hack失效,这个时候你可以对IE6也通过
当IE6处于quriks模式时,IE6和IE5.5对CSS解析方式几乎雷同,所以当看到《position:fixed for Internet Explorer》时,我找到了在quriks模式下IE6/IE5.5/IE5统一的CSS解决方案:
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
……
body{overflow:hidden;}
#wrapper{height:100%;overflow:auto;}
#fixed{position:absolute;right:17px;}
……
{position:fixed}
代码演示3(单个IE,纯粹通过条件注释区分IE浏览器)
代码演示4(多个IE,通过条件注释+CSS hack区分IE浏览器)
对比两个纯粹的CSS hack发现,两个
或许有人会想,现在可以引入了XML Prolog又能用纯CSS方法解决了IE7以下的问题,这下爽了,但是加上XML Prolog后突然发现IE6处于Quriks模式,以前在standards-compliant模式下的