DIV+CSS网页盒子错位的原因是什么?

常常我们会遇到我们要设置在一行显示的布局,却因为种种原因造成了错位,看到结果是在一行的最后一个盒子布局错位掉下去了(如下图)。

1.png
错位一 3错位掉落与1和2下方

2.png
错位二 网页布局错位示范

造成DIV CSS网页布局错位的原因大概有两种情况,一种是宽度计算错误,一种是IE BUG造成,特别是IE6和IE7。接下来我们挨着为大家介绍错位与解决错位方法。

一、宽度计算错误

宽度计算错误,假如总宽度为500px,有3个盒子,分别css宽度为200px、200px、100px,这个没问题会在一排显示不会错位,但如果加入了css边框、padding、margin属性时,别忘记这几个属性所占的宽度。特别是padding与边框border占用宽度空间不要忽略了。如果有一个盒子加入左右边框,这个时候有一个盒子中刚合适的宽度条件下减少2px边框占用宽度,否则即会总3个盒子合计宽度大于了总宽度,造成错位。

宽度问题造成CSS布局错位小结:

内盒子宽度之和大于了外宽度造成错位,检查时候我们一定计算设置宽度、边框、paddind、margin之和。

二、IE BUG特别是IE6和IE7造成错位

这个问题是最常见的问题,我们检查完第一点宽度问题,而宽度没问题,这个时候在IE6、IE7中错位,在IE8及其它浏览器没有错位问题,这个时候我们就要考虑到你是否使用了margin属性,通常我们使用了CSS浮动(css float)情况下使用margin(margin-right margin-left这里特别是这个属性)此属性会产生双倍数值,这个时候我们需要使用css hack解决此问题。让IE6或IE7单独识别特指定margin样式。

如:

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

更多web前端知识,请查阅 HTML中文网 !!

以上就是DIV+CSS网页盒子错位的原因是什么?的详细内容,更多请关注web前端其它相关文章!

赞(0) 打赏
未经允许不得转载:web前端首页 » CSS3 答疑

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏