IE6出现文字自动重复

原文链接:http://feizhaojun.com/doc-archive/IE6出现文字自动重复.html

以前在做DIV有时候会碰到文字自动重复的现象,即在一系列元素的下端的文字会重复出现。这种现象只会在IE6中出现,在IE7和火狐中没有此现象。例如:
[code lang="html"]
<!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">中国站长天空(www.zzsky.cn),站长建站乐园</div>
</div>
</body>
</html>
[/code]

找了N久原因,是有关CSS中的float属性,把float属性去掉就没有问题了,但是真正的原因一直不太清楚,后来在蓝色理想看到一个帖子才搞清楚原因和解决方法。
原因:是注释造成的文字溢出,而且只有IE6才有这个BUG,而溢出文字的字数=注释的条数*2-1。BUG与注释文字的位置、区块的浮动以及文字区块的固定宽度都有联系。
解决方法:
1、不放置注释。这是最简单、最快捷的解决方法,但不方便,有时是需要注释的;
2、注释不要放置于2个浮动的区块之间;
3、将文字区块包含在新的元素之间(这个增加了多余的元素),如在外面再加一层 div:
[code lang="html"]
<div style="float:right;width:400px"><div>中国站长天空(www.zzsky.cn),站长建站乐园</div> </div style="float:right;width:400px"></div>
[/code]
4、去除文字区块的固定宽度,与3有相似之处;  
5、在后面加一个或者空格(这个增加了多余的元素);  
6、使用IE注释格式(这个是可以使用的,不论在IE还是火狐都正常显示,而且也符合标准,但和常规的注释不一样),如:
[code lang="html"]
<!--[if !IE]>Put your commentary in here...<![endif]-->
[/code]
7、给盒子加;属性(个人觉得这个应该是最好的解决方法,应该只有IE6有这个BUG,可以只针对IE6加这个属性)。

您的赞助将会支持作者创作及本站运维

发表评论


TOP