• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
聞道有先后,术业有专攻
习惯成自然
博客园    首页    新随笔    联系   管理    订阅  订阅

IE bug css 关于"浮动边距加倍"及其解决方法

css 关于"浮动边距加倍"及其解决方法

默认分类 2009-11-18 15:23:22 阅读29 评论0 字号:大中小

css 关于"浮动边距加倍"及其解决方法-------解决方案是在这个div里面加上display:inline;
2009-10-22 09:51
css 关于"浮动边距加倍"及其解决方法
2009年08月14日 星期五 12:13

写div代码的时候,经常发现明明宽度算得很准确,但是莫明其妙的会和计划的布局不太一样- -|||
开始以为自己代码写的有问题,拼命找bug也一无所获,最后可能会稍微修改样式来达到想要的效果,但终究也是外道..昨晚刨根问底了一次...我靠..原来是IE的问题-_,-
今天跟半半唠叨起这件事,还说要加入反IE的行列来着...为啥别的都没问题就IE有问题嘛..-x-

浮动边距加倍错误(The IE Doubled Float-Margin Bug )
如果某条边与浮动方向同向,则向该边上的浮动框应用边距时,边距会增加一倍。此错误只影响一次或多次浮动的某行中的第一次浮动。

#ax{
float:left;-----------------------------设定了左浮动
width:500px;
height:100px;
}
#bx {
float: left;
width: 150px;
height: 50px;
margin: 0 0 0 10px;--------------设定了左边距10px
}


<div >
<div ></div>
</div>
//在IE中导致浮动边距加倍,10px会变成20px...在不知道的情况下,以前多半会选择减少div宽度,觉得是margin和宽度之间出了问题..

解决方法:在margin后面跟一句 display:inline; 就可以了...但是我翻了半天也没有翻到原理,只是说,在这样的情况下,用这样一个声明,就可以阻止IE的边距翻倍,而且并没有任何inline的效果,没有副作用

这个bug实在是很常见= =....据说以前被认为是无法改良的IE的bug...现在虽然IE还是有这bug,但聪明的人们找到了对付它的方法

=================================

问题1:

以DW编辑器为例,在页面做完后,点“文件〉检查页〉浏览器兼容性”,检查你所做的页面在各个浏览器中是否显示正常,如果出现以下问题:
“浮动边距加倍错误”
“如果某条边与浮动方向同向,则向该边上的浮动框应用边距时,边距会增加一倍。此错误只影响一次或多次浮动的某行中的第一次浮动。
margin加倍的问题 设置为float的div在ie7下显示正常但是在ie6下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上display:inline;
posted @ 2010-02-10 10:12  张立余  阅读(444)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3