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>
解决办法:参照上面。
