发布网友 发布时间:2022-04-24 20:10
共8个回答
懂视网 时间:2022-05-12 16:50
我们常常会遇到需要设置同一行的布局,但是却因为种种原因错了位,我总结了一下网页布局错位大概有俩种原因,今天给大家好好分析一下原因以及解决方法。常常我们会遇到我们要设置在一行显示的布局,却因为种种原因造成了错位,看到结果是在一行的最后一个盒子布局错位掉下去了
造成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
相信看了这些案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
相关阅读:
HTML如何2d和3d转换
html与xhtml的区别详解
Js获取获取样式的常见方式
热心网友 时间:2022-05-12 13:58
现在的大部分都是div+css的布局,出现问题是很常见的,如网页缩小时候的错位:热心网友 时间:2022-05-12 15:16
可能是一些层里的内容问题,还有层的定位,在浏览器缩小的时候,各走各的,引起页面变形是正常的,就像,你定位一个层距离最顶部的距离是100,那么缩小的时候,他距离顶部的距离并没有缩小,所以引起变形。都很正常的。热心网友 时间:2022-05-12 16:51
在缩小时是因为一些层没有跟着缩小导致错位,我想是这样吧。那些不随着缩小的层是因为你加了样式:position:relative。热心网友 时间:2022-05-12 18:42
多个层覆盖。肯定用到了定位。那么在缩放时。各走各的是很正常的。追问不会吧,那些网页游戏页面不也是那么多层的覆盖吗,,,还能随意放大缩小呢追答网游大多都是FLASH。
热心网友 时间:2022-05-12 20:50
你可以做流体浮动布局,可以让你的网页随着浏览器窗口变化大小追问流体浮动布局,如何做呢?如何写呢?
热心网友 时间:2022-05-12 23:15
建议各个控件什么的放在<table>里,这样控件什么的不会乱跑热心网友 时间:2022-05-13 01:56
样式没写好