今天在看一个项目的测试版的时候,发现了IE6文字溢出的BUG,文字出现了“重影”。
<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>
开始很快想到的是注释,看了源代码,发现页面里根本没有注释。实在摸不着头脑,祭出了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>