IE 6的字符溢出问题

最近在用div+css写代码的时候,测试IE 6的时候,发现有些div的字符不知道什么原因就会多出几个字符。

一直以为是自己的css代码有问题,但是在其他的浏览器测试却一点问题都没有,百思不得其解之下,唯有Google一下,终于找到了问题原因所在,引发这个问题的罪魁祸首就是在两个设置了float属性的div之间的注释造成的(IE 6才是最大的幕后黑手)。然后把注释去掉了,OK,问题解决。

以下为出现该BUG的实例:

<div  style="width:400px">
<div style="float:left"></div>
<!-- -->
<div  style="float:right;width:400px">注释在IE6中造成文字溢出实例</div>
</div>

解决方法一:去除<div style=”float:left”></div> 中的“float:left;”,你会发现多出来的字不见了,页面正常显示

解决方法二:将注释移动到<div style=”float:left”></div> 的上面,页面也不会出现此BUG

解决方法三:去除内浮动层<div  style=”float:right;width:400px”> 的宽度定义(width:400px),此BUG也会消失

而在测试过程中也会发现:增加注释的条数:当1条注释时,则多出来1个字;2条注释时,则多出来3个字;3条注释时,则多出来5个字……
我们会从上面的规律中得到这样一个公式:溢出文字的字数=注释的条数*2-1,这里的字数在中文或英文数字时都成立。
当溢出的文字字数大于文本的字数时,文字区块将会消失。
其实最简单的方法就是不放置注释内容,然后这在现实的工作中会导致某些不方便。那么,注意一下,不要把注释内容放到两个float的div之间就行了。

其解决方法五:将文字区块包含在新的<div></div>之间,如:

<div style="float:right;width:400px">

<div>注释在IE6中造成文字溢出实例</div>

</div>

另外,在网页间使用JS代码标签”<script>”也会出现这个问题。例如:

<div  style="width:400px">
<div style="float:left"></div>
<script type="text/javascript">
</script>
<div  style="float:right;width:400px">注释在IE6中造成文字溢出实例</div>
</div>

解决办法:参照上面。

Related Posts

  • inline-block的小测试
  • CSS3 PIE – 让 IE 支持 CSS3
  • CSS Hack笔记
  • chrome不支持12px以下字体大小的解决方案
  • 获取指定元素CSS属性值
  • http://www.veryemul.com 下载

    呵呵,很好很强大