IE6 重复字符的bug及解决方法

来源:互联网 发布:200入门耳机推荐 知乎 编辑:程序博客网 时间:2024/05/21 05:22

<div style="width:400px">
   <div style="float:left"></div>
   <!-- -->
   <input type="hidden" value="hidden" />
   <div style="display:none;">hidden</div>
   <div style="float:left;width:400px">IE6文字溢出的BUG</div>
</div>

今天在看一个项目的测试版的时候,发现了IE6文字溢出的BUG,文字出现了“重影”。

开始很快想到的是注释,看了源代码,发现页面里根本没有注释。实在摸不着头脑,祭出了Google,注意到了当初没有注意到的一句话“但IE6的这个重复BUG也有些不是注释造成的,但基本上都和浮动有关系”。后来有查阅到其他文章提到type=hidden的input以及display: none的div也会导致文字溢出的BUG,正好代码有type=hidden的input。

在同事的帮助下(偶E问很烂)查阅了国外的资料,解决了type=hidden的input造成文字溢出的问题。不要把这个input直接放在form下面,可以用div或者fieldset把这个input包起来。

<div style="width:400px">
   <div style="float:left"></div>
   <div><input type="hidden" value="hidden" /></div>
   <div style="float:left;width:400px">IE6文字溢出的BUG</div>
</div>

将文字区块包含在新的div之间,但这个方法对type=hidden的input以及display:none的div不奏效。

<div style="width:400px">
   <div style="float:left"></div>
   <!-- -->
   <div style="float:left;width:400px"><div>IE6文字溢出的BUG</div></div>
</div>

而display:none的div造成的文字溢出同理可以用div将这个隐藏的div包起来。

<div style="width:400px">
   <div style="float:left"></div>
   <div><div style="display:none;">hidden</div></div>
   <div style="float:left;width:400px">IE6文字溢出的BUG</div>
</div>