在我们日常开发中经常会遇到这样问题。有一个大的盒子模型总宽度为1000,里面装有两个宽度都500px的div,想要它们在一行显示,但是确有一个掉下去了,这种情况通常有两种情况:一种是宽度计算错误,一种是IE BUG造成,特别是IE6和IE7。
一、宽度计算错误导致的问题解决:
宽度计算错误,假如总宽度为500px,有3个盒子,分别css宽度为200px、200px、100px,这个没问题会在一排显示不会错位,但如果加入了css边框、padding、margin属性时,别忘记这几个属性所占的宽度。特别是padding与边框border占用宽度空间不要忽略了。如果有一个盒子加入左右边框,这个时候有一个盒子中刚合适的宽度条件下减少2px边框占用宽度,否则即会总3个盒子合计宽度大于了总宽度,造成错位。
二、IE BUG特别是IE6和IE7造成错位:
1、IE6单独识别(margin-left对于只有IE6错位情况下)
{margin-left:5px;_margin-left:2px}
这个时候除IE6外其它浏览器设别margin-left:5px,IE6单独识别_margin-left:2px
2、IE7与IE6都识别(margin-left对于ie6和ie7识别其它版本和品牌浏览器不设别)
{margin-left:5px;*margin-left:2px;}
这个时候除IE6和IE7外,其它浏览器设别margin-left:5px,IE6和IE7识别*margin-left:2px;