关于ie的3像素bug

  以前写前端代码时,ie下总是会出现各种莫名其妙的问题,如一行两列布局在其他浏览器下正常,但是在ie下确发现两列出现了上下错位。今天将ie下的3像素问题做个总结,后续遇到问题再更新。

  1、bug描述

  ie下两个相邻的div之间会出现3个像素的bug,这个bug是在当对其中一个div使用了float,而另外一个没有使用时会出现。

left
right

  

<div style="margin: 0 auto; background-color: #ccc;">
    <div style="width: 200px; height: 100px; float: left; background-color: #95f49e;">left</div>
    <div style="background-color: #fff; height: 100px; border: 1px solid #ccc;">right</div>
</div>

  上面的代码在ie6低下运行时,会发现right前面出现3px的空格。

  解决方法:a.对另一个元素同时使用float; b.为已经浮动的div添加一条语句:margin-right:-3px; ;

  当浮动元素与非浮动元素相邻时,这个3像素的Bug就会出现,它会偏移3像素。只要触发IE的hasLayout,非浮动元素就会拥有布局。所以,利用IE6特有的hack规则,为它单独写样式就可修复此问题:_zoom:1;margin-left: value;_margin-left: value-3px;zoom 是IE触发Layout条件之一,因为它是IE特有的CSS规则,所以采用zoom。margin-left: value-3px 是修复IE6 中3px 的bug。此前采用非浮动元素也浮动的方法修复bug,现在可以试试这个新的方法了!注:前面的下划线是专门写给IE7以下版本的hack!

 

转载于:https://www.cnblogs.com/JohnnyChen/archive/2012/11/02/2750114.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值