1.一个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下如图
其他浏览器如图:
这个问题真是让人郁闷,感谢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> |
IE6真是太疯狂了。今天由于项目需要做了这么一个布局:一个外部的相对定位div,内部一个绝对定位的div(right:0),
如图:
可是在IE6下查看,却变成了right:1px的效果了:
IE6还有奇数宽高的bug,解决方案就是将外部相对定位的div宽度改成偶数。高度也是一样的
查看源码:
CSS代码:
#out {
width: 609px;/*这里宽度为奇数,bug就出现了!!改成偶数就OK了*/
height: 300px;
position: relative;
background:#FF0000;
color:#FFF;
}
#inn {
width: 200px;
height: 250px;
position: absolute;
top: 0px;
right: 0px;
background:#000000;
}
width: 609px;/*这里宽度为奇数,bug就出现了!!改成偶数就OK了*/
height: 300px;
position: relative;
background:#FF0000;
color:#FFF;
}
#inn {
width: 200px;
height: 250px;
position: absolute;
top: 0px;
right: 0px;
background:#000000;
}
XML/HTML代码:
<div id=“out”>
<div id=“inn”>此处为内部绝对定位的 DIV</div>
</div>
<div id=“inn”>此处为内部绝对定位的 DIV</div>
</div>