【IE6的疯狂之四】IE6文字溢出BUG

愚人码头 撰写  

在IE6下使用浮动可能会出现文字重复的情况.

在IE6下,浮动层之间有注释文字的话,之前那个浮动层的内容文字就有可能遭遇一个“隐形”的复制,但是代码里查看文字可并没有多出来。

看个例子:

XML/HTML代码
  1. <!DOCTYPE html PUBLIC ”-//W3C//DTD XHTML 1.0 Transitional//EN” ”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>  
  2. <html xmlns=“http://www.w3.org/1999/xhtml”>  
  3. <head>  
  4. <meta http-equiv=“Content-Type” content=“text/html; charset=gb2312″ />  
  5. <title>多了一只猪</title>  
  6. </head>  
  7. <body>  
  8.     <div style=“width:400px”>  
  9.         <div style=“float:left”></div>    
  10.         <!– _ –>  
  11.         <div style=“float:right;width:400px”>↓这就是多出来的那只猪</div>  
  12.     </div>  
  13. </body>  
  14. </html>  

用IE6看一下,你会发现真的会多出一只“猪”!

问题原因以及解决方法:

原因:
由注释造成文字溢出,属于IE6的BUG,溢出文字的字数=注释的条数*2-1,这里的字数在中文或英文数字时都成立。注释坐在位置与溢出位置、区块的浮动以及文字区块的固定宽度有必然联系。

解决办法:
1、不放置注释。最简单、最快捷的解决方法;
2、注释不要放置于2个浮动的区块之间;
3、将文字区块包含在新的<div></div>之间,如:<div style=”float:right;width:400px”><div>↓这就是多出来的那只猪</div></div>;
4、去除文字区块的固定宽度,与3有相似之处;
5、在后面加一个<br />或者空格;(不推荐)
6、使用IE注释格式,如:<!–[if !IE]>Put your commentary in here…<![endif]–>
7、给盒子加position:relative;属性


test.jpg
引发这种BUG有几个条件
1.是注释引起的,删除所有注释即可.
2.hidden的input直接放在form下.
3.display为none的div也有可能引发此bug.
2,3可以通过外面再包一次DIV解决

更多相关链接:


相关日志:

刚刚被浏览过的文章:


3 条评论

  1. zhaoht
    发表了 2009年04月29日 在 1:41 下午 | 永久链接

    没看到效果,什么多出一只猪,没有多呀。我看的效果

  2. 发表了 2009年11月8日 在 11:59 上午 | 永久链接

    如果有多条注释~会出现若干个字,那么每嵌套一层div就去掉一个字~
    崩溃的IE6~~

  3. 发表了 2009年12月20日 在 1:19 下午 | 永久链接

    顶一下,这个问题我就遇到过,感觉出来了肯定是因为标签不规则引起的,可没想到是IE6所导致的标签复制问题。

4 个引用通告

  1. [...] 【IE6的疯狂之四】IE6文字溢出BUG:http://www.css88.com/archives/253 [...]

  2. IE6的人生,IE6修复! @ 華山論劍‘Web开发 发表在 2009年06月14日 于 2:17 上午

    [...] 【IE6的疯狂之四】IE6文字溢出BUG:http://www.css88.com/archives/253 [...]

  3. [...] 此文的编写参考:http://www.css88.com/archives/253 分类: Web Design 标签: css, ie6 bug 评论 (0) Trackbacks (0) 发表评论 Trackback [...]

  4. [...] 【IE6的疯狂之四】IE6文字溢出BUG:http://www.css88.com/archives/253 【IE6的疯狂之五】div遮盖select的解决方案:http://www.css88.com/archives/545 [...]

发表评论

Your email is never shared. 标记为 * 的为必填项目

*
*

评论时,昵称或个人网站填的是商业网站的,一概标记为垃圾评论不予显示,并设置相关网站为过滤关键字,提交到google、百度垃圾网站数据库