IE6出现重复字符(文字溢出)的bug

IE6出现重复字符(文字溢出)的bug  

一个容器包含2两个具备“float”样式的子容器。 
第二个容器的宽度大于父容器的宽度,或者父容器宽度减去第二个容器宽度的值小于3。(说到3,这里稍微多说一句——IE7还修正了IE6中的一个bug,bug名字就叫作“3像素bug”) 
在第二个容器前存在注释(这也是为何此bug也叫作“IE6注释bug”的缘由)。web


为什么会出现重复文字
bug虽然的的确确的存在,可是为何会出现这样的bug依然没有统一的定论。不一样的高手也是各执一词,谁也说服不了谁。真正的缘由也许只有当时的IE6团队才能道出来,可是如今仍然没有官方的说法。下面列出来的这两种说法,是只是如今网上承认度比较高的而已——浏览器

IE6浏览器对<!-- -->注释的解释存在bug引发的。 
“3像素bug”的扩展后遗症。(“3像素bug”咱们将在《IE7的web标准之道》系列之后的文章中讲到) 
其余的一些说法ide

如何消灭重复文字
引发的缘由,也许咱们能够不知道,可是如何去消除倒是咱们必定要关注的。
“歌剧院魅影bug”已经在IE7中获得修正,在FireFox和Opera中也不会出现,因此bug的修正主要是针对IE6的。布局

针对于上文中讲到的“bug重现条件”,若是要修正bug,只要让任何一个条件不知足便可——spa

改变结构,不出现【一个容器包含2两个具备“float”样式的子容器】的结构。

减少第二个容器的宽度,使父容器宽度减去第二个容器宽度的值大于3,例如将本文示例中第二个子容器的宽度改成197px。
注:在知足页面布局的前提下可使用。可是当状况比较复杂的时候,可能实施起来比较困难。 
去掉全部的注释。
注:此解决方案的评论:最直接的作法,可是“没有注释的代码”,的确不是一个好的代码写做习惯。 
修正注释的写法。将 <!-- 这里是注释内容 -->写成<!--[if !IE]>这里是注释内容<![endif]-->
注:此解决方案的评论:还不错的解决方案,可是并非每一个人都对<!--[if !IE]>这里是注释内容[endif]-->这种注释写法很欣赏。 
在第二个容器后面加一个或者多个<div style="clear"></div>来解决。
注:此解决方案的评论:另人感受很不爽的解决方案。可是的确能解决。影响网页效率orm

相关文章
相关标签/搜索