【IE6的疯狂之十二】一个display:none引起的3像素的BUG

还真不知道这个题目这么写,暂时就用这个吧。

今天同事给我看了一个display:none引起的3像素的BUG,非常奇怪!从来没碰到过display:none还能引起这种bug。

看代码:

1 <div style="width:300px; margin:20px; border:1px solid #000; overflow:hidden; zoom:1;">
2 <div style="background:green; width:10px; float:left; height:300px;"></div>
3 <div style="background:red; float:left; height:300px; width:280px;"></div>
4 <div style="display: none; "></div>
5 <div style="background:green; width:10px; float:left; height:300px;"></div>
6  
7 </div>

这个是有在ie6下如图

2009-08-19_192458

其他浏览器如图:

2009-08-19_192652

这个问题真是让人郁闷,感谢greengnn和广州♂锋提供的解决方案:

 

解决方案1:将最后一个div加一个margin-right:-3px;即

1 <div style="width:300px; margin:20px; border:1px solid #000; overflow:hidden; zoom:1;">
2 <div style="background:green; width:10px; float:left; height:300px;"></div>
3 <div style="background:red; float:left; height:300px; width:280px;"></div>
4 <div style="display: none; "></div>
5 <div style="background:green; width:10px; float:left; height:300px;margin-right:-3px"></div>
6  
7 </div>

解决方案2:将display: none的div换一个形式隐藏:即

1 <div style="width:100px; margin:20px; border:1px solid #000; overflow:hidden; zoom:1;">
2 <div style="background:green; width:10px; float:left; height:100px;"></div>
3 <div style="background:red; float:left; height:100px; width:80px;"></div>
4 <div style="position:absolute; visibility: hidden "></div>
5 <div style="background:green; width:10px; float:left; height:100px; margin-right:-3px"></div>
6 </div>

如果你也有解决方案,欢迎分享。

posted @ 2011-04-28 15:40  likozhang  阅读(423)  评论(0编辑  收藏  举报