ie6 fixed bug的解决方法 (css+js)
2010-01-17 00:23
561 查看
#fixed { position: absolute; top: 0; left: 0; width: 10em; height: 100%; } body > #fixed { position: fixed; } #content { margin-left: 10em; background:red; height:800px; }
利用css选择器覆盖原position的属性值;
fixed层的父层需是body才能这样实现;
但是这样还不完美 并不能完全实现效果,因为不会随body页面拉动而滚动
要实现随body页面滚动而滚动 需添加以下js代码
<script language="javascript" type="text/javascript"> function fixedPop1(){ var m=60; //top值 var obj=document.getElementById("TopDivInner"); //position:fixed对象 var n=50; //top值 var obj2=document.getElementById("TopDiv"); //position:fixed对象 window.onscroll=function(){obj2.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px'; obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+m+'px'; } window.onresize=function(){obj2.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+n+'px'; obj.style.top=(document.body.scrollTop||document.documentElement.scrollTop)+m+'px'; } }; $(function(){ fixedPop1(); }); </script>
豆瓣的弹出登陆框就是利用这样的方式实现的,当然要在js代码上加 if IE6的
到此,加上通过js判断屏幕分辨率进而改变弹出框的位置,使其更加合理化,就基本完成了豆瓣弹出登陆款的实现
然而这个在ie6下存在拖动滚动条引起登陆框闪动的问题,为解决这个问题可以利用css e xpression 代价是更高的内存占用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <style type="text/css"> * { margin: 0px; padding: 0px; } body { background-image: url(http://global.tianya.cn/global/gnav/css/nothing.txt); background-attachment: fixed; /* prevent screen flash in IE6 */ } #topNavWrapper { width: 980px; text-align: left; height: 31px; margin: 0px auto; z-index:100; _position: relative ; _top:0px; } #topNav { width: 980px; float: left; display: block; z-index: 100; overflow: visible; position: fixed; top: 0px; /* position fixed for IE6 */ _position: absolute; _top: expression(documentElement.scrollTop + "px"); background-image: url(http://global.tianya.cn/global/gnav/images/top_r.gif); background-repeat: no-repeat; background-position: right; height: 31px; } .show{ position:absolute; top:500px; left:400px; border:#ff0000 1px solid; } </style> </head> <body> <div id="topNavWrapper"> <ul class="jd_menu" id="topNav"> </ul> </div> 这里是大量的br换行标签。 <div class="show">show</div> </body> </html>
since1984应该利用类似的技术实现其底部半透明框框
相关文章推荐
- js,css三种方法解决IE6下position:fixed的Bug以及闪动问题
- 解决 ie6 fixed bug (css+js)
- 【转】 IE6 IE7 IE8 css bug兼容性解决方法总结归纳
- IE6 IE7 IE8 css bug兼容性解决方法总结归纳
- IE6 IE7 IE8 css bug兼容性解决方法总结归纳
- IE6下CSS多类选择符优先级不起作用的bug分析及解决方法
- ie6,ie7,ie8 css bug汇总以及兼容解决方法
- 【技术】ie6,ie7,ie8 css bug汇总以及兼容解决方法
- IE6,IE7,IE8 css bug搜集及浏览器兼容性问题解决方法汇总
- 解决IE6下PNG图片背景不透明的三种方法(CSS/JS/JQuery)
- IE6不兼容position:fixed的解决办法(CSS里写js)
- IE6,IE7,IE8 css bug汇总以及兼容解决方法
- IE6 IE7 IE8 css bug兼容性解决方法总结归纳
- js完美解决IE6不支持position:fixed的bug
- IE6 IE7 IE8 css bug兼容性解决方法总结归纳
- ie6,ie7,ie8 css bug兼容解决方法
- ie6,ie7,ie8 css bug兼容解决方法集合
- ie6,ie7,ie8 css bug汇总以及兼容解决方法 - xhuangtao
- IE6 IE7 IE8 css bug兼容性解决方法总结归纳
- js完美解决IE6不支持position:fixed的bug