`
cloudstars
  • 浏览: 40272 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于IE6浮动产生的3像素BUG

 
阅读更多

关于IE6的浮动产生的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:0;_margin-left:-3px;zoom 是IE触发Layout条件之一,因为它是IE特有的CSS规则,所以采用zoom。margin-left:-3px 是修复IE6 中3px 的bug。此前采用非浮动元素也浮动的方法修复bug,现在可以试试这个新的方法了!注:前面的下划线是专门写给IE7以下版本的hack!

分享到:
评论

相关推荐

    解决ie6下3像素bug问题

    标题“解决ie6下3像素bug问题”指的是在IE6浏览器版本下,两个浮动元素之间出现的不期望的3像素间隙问题。这个问题是一个常见的前端bug,主要是在IE6浏览器中由于其解析CSS的特殊性导致的,而这种问题在其他浏览器中...

    解决IE6 3像素Bug的css写法

    使用这种方法,我们可以在不改变元素原有布局的前提下,有效地解决IE6的3像素Bug。但是,需要注意的是,这种方法只对IE6有效,对于更高版本的IE(如IE7、IE8)以及其他浏览器无效。随着现代浏览器的普及,IE6的使用...

    IE6的3像素 bug解决方案分享

    3像素bug表现为在IE6浏览器下,当一个容器内的浮动元素(float样式)导致容器宽度超出预设值,或者父容器宽度与子容器宽度差小于3像素时,文本或图像会发生溢出,表现为额外复制字符。例如,原本显示为“下一页”的...

    iebug总结jar包

    5. **双边距问题**:在IE6中,浮动元素的内联元素会额外增加一个像素的边距,可通过负margin或者`display:inline-block`来修复。 6. **CSS选择器限制**:IE6不支持一些高级CSS选择器,如`:hover`在非链接元素上、`:...

    ie特有bug文档

    - **问题描述**:在IE7中,当某元素的`border-width`中有小于3像素的边框设置为`dotted`时,该边框会显示为`dashed`而非预期的虚线效果。 - **解决方案**:避免在同一元素上同时使用不同宽度的`dotted`边框。 #####...

    css常见的bug(ie)

    7. **3像素Bug**: 当两个浮动的DIV相邻时,IE可能会在它们之间显示3像素的间隙。解决方法包括使相邻元素也浮动,或者为已浮动的元素添加负margin。 8. **宽度和高度的问题**: IE不支持`min-`前缀,但它实际上把...

    DIV+CSS相对IE6、IE7和IE8的兼容问题

    DIV浮动IE文本3像素间距问题 当左侧对象浮动,右侧对象通过外边距定位时,右侧对象内的文本可能会在左侧出现3像素的间隙。解决方法是为左侧浮动元素添加负`margin-right`,例如: ```css #left { float: left; ...

    IE6,7,8兼容

    **DIV浮动IE文本产生3像素的bug** - **问题描述**:当左侧对象浮动时,右侧对象内的文本可能会出现额外的3像素间距。 - **解决方案**:可以在IE专用的样式表中添加`margin-right: -3px;`来修正。 ```css *...

    IE6,IE7,IE8兼容性问题

    ##### 2.6 DIV浮动IE文本产生3像素的bug **问题描述**:当左边的对象浮动后,右边的对象内的文本可能会出现3像素的间距问题。 **解决方案**: - 通过调整左边对象的`margin-right`属性来解决。 **示例代码**: ```...

    目前比较全面的浏览器CSS BUG兼容汇总

    6. **浮动文本3像素bug**: 当左侧对象浮动,右侧对象通过外补丁定位时,IE会产生3像素的间距。可以通过为IE特定的CSS修复: ```css #left { float: left; width: 50%; } *html #left { margin-right: -3px;...

    IE6 两个div有间隙的问题(IE 3px bug)

    这个bug表现为在IE6下,当两个浮动(floated)的div相邻时,它们之间会出现一个3像素的间距,这与在其他浏览器(包括更新版本的IE)中的表现不符。这个问题的根源在于IE6对浮动元素的盒模型处理方式与其他浏览器不同...

    css兼容性(IE 和 firefox)技巧大全.doc

    6. **浮动文本的3像素bug**:当左侧元素浮动,右侧元素使用外边距进行对齐时,IE浏览器会出现3像素的间隙。为解决此问题,可以针对IE使用`*html`选择器,并给左边的元素设置负的右外边距。 7. **捉迷藏问题**:在...

    最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)

    6. **IE三像素bug** 当一个`float`元素旁边还有一个非`float`元素时,在IE6/7中可能会出现一个3像素的空白区域。解决方法是为`float`元素添加负的`margin-right`。 ```css #left { float: left; width: 50%; ...

    IE6,IE7,FF等浏览器不兼容原因及解决办法

    - **问题描述**:在IE6中,当外层元素内含有浮动元素时,如果外层元素定义了`margin-top`,那么它还会自动生成一个等同的`margin-bottom`。 - **解决办法**:可以在外层元素上设置`border`或`float`属性来避免这个...

    IE Bug--浮动对象外补丁的双倍距离的解决方法

    本文将详细介绍一个关于IE中的“浮动对象外补丁的双倍距离”的Bug,并提供一种有效的解决方案。 #### Bug概述 在某些版本的IE浏览器中,当一个元素设置了`float`属性并拥有`margin`时,该元素与外部容器之间的距离...

    CSS浏览器兼容问题整理(IE6.0、IE7.0_与_FireFox)

    DIV浮动IE文本3像素间距bug 当一个元素浮动时,与之相邻的非浮动元素中的文本可能会出现3像素的间隙。为了解决这个问题,可以在浮动元素的CSS中添加针对IE的特定样式,如`margin-right:-3px;`,以此来消除间隙。 ...

Global site tag (gtag.js) - Google Analytics