IE6的3像素BUG产生条件及解决方法

作者:KwooJan

原文地址:http://www.w3cfuns.com/forum.php?mod=viewthread&tid=263


今天“W3Cfuns2群”上有朋友遇到页面无法兼容多种浏览器,代码发给我后,发现原因在于IE6的3像素BUG,我将这个问题进行重现出来,仔细给大家讲一下,先看一下下面的代码:


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>IE6的3像素bug - CSS学习网(www.cssxuexi.cn)</title>
  6. <style type="text/css">
  7. #sideBar{
  8. width:100px;
  9. height:100px;
  10. background:#6bee68;
  11. float:left;
  12. }
  13. #content{
  14. width:200px;
  15. height:100px;
  16. background:#56bcf3;
  17. }
  18. </style>
  19. </head>

  20. <body>
  21. <div id="sideBar">sideBar</div>
  22. <div id="content">content</div>
  23. </body>
  24. </html>






在不同的浏览器下效果如下图:

IE6的3像素BUG 

可以看到,微软出的三款浏览器IE6、IE7、IE8效果均不同,而IE8和FF的效果确实一样的,尽管效果相同但是不是我们想要的效果,真正的效果是像IE7显示的效果。

    这下好了,标准浏览器FF居然不是我们想要的效果,而IE的三款浏览器每个效果都不一样,IE6吧sideBar和content中间居然还有一个3像素(px)的间隙,值得庆幸的是IE7还能给一个我们想要的效果。

对于IE6显示的效果和我们要求的效果很接近但是有个3像素bug,产生原因呢,就是IE6本身的问题了
    对于IE8和FF的效果和我们要的效果大相径庭,蓝色的跑到绿色的下面,产生原因呢,是因为他们按照W3C页面标准进行解析,浏览器没有错,既然浏览器没有错,那么就错在我们自己----代码编写者身上了,因为我们对浮动没有理解透彻,写出来的代码没有完全符合标准,因为当一个元素浮动的时候就会脱离原本的文本流,而后面的元素就会忽视它的存在,于是在标准浏览器内它们就发生了发生重叠。
    解决方法:只需要给蓝色区域也加上左侧浮动,就OK了,代码如下




  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
  5. <title>IE6的3像素bug - CSS学习网(www.cssxuexi.cn)</title>
  6. <style type="text/css">
  7. #sideBar{
  8. width:100px;
  9. height:100px;
  10. background:#6bee68;
  11. float:left;
  12. }
  13. #content{
  14. width:200px;
  15. height:100px;
  16. background:#56bcf3;
  17. float:left;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22.     <div id="sideBar">sideBar</div>
  23.     <div id="content">content</div>
  24. </body>
  25. </html>





现在再看一下效果,怎么样?都一样了吧
IE6的3像素BUG 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值