日期:2013-08-19  浏览次数:21102 次

<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>

打完收工。