IE6出现重复字符(文字溢出)的bug

来源:互联网 发布:淘宝开店身份证要求 编辑:程序博客网 时间:2024/06/05 09:25

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title></title>
</head>
<body>
<div style="width:400px">
<div style="float:left"></div>
<!--这里是注释-->
<div style="float:right;width:400px">这里是内容部分,也是在IE6下出现重复的部分。</div>
</div>
</body>
</html>


以前在做DIV有时候会碰到文字自动重复的现象,即在一系列元素的下端的文字会重复出现。这种现象只会在IE6中出现,在IE7和火狐中没有此现象。例如:


找了N久原因,是有关CSS中的float属性,把float属性去掉就没有问题了,但是真正的原因一直不太清楚,后来在蓝色理想看到一个帖子才搞清楚原因和解决方法。

  原因:是注释造成的文字溢出,而且只有IE6才有这个BUG,而溢出文字的字数=注释的条数*2-1。BUG与注释文字的位置、区块的浮动以及文字区块的固定宽度都有联系。

  解决方法:

  1、不放置注释。这是最简单、最快捷的解决方法,但不方便,有时是需要注释的;

  2、注释不要放置于2个浮动的区块之间;(**解决)

  3、将文字区块包含在新的元素之间(这个增加了多余的元素),如在外面再加一层<div>:<div style="float:right;width:400px"><div>(www.zzsky.cn),站长建站乐园</div> </div>;

  4、去除文字区块的固定宽度,与3有相似之处;

  5、在后面加一个<br>或者空格(这个增加了多余的元素);

  6、使用IE注释格式(这个是可以使用的,不论在IE还是火狐都正常显示,而且也符合标准,但和常规的注释不一样),如:<!--[if !IE]>Put your commentary in here...<![endif]-->;

  7、给盒子加;属性(个人觉得这个应该是最好的解决方法,应该只有IE6有这个BUG,可以只针对IE6加这个属性)。 

0 0