IE6超级无敌影分身字

August 8th, 2008 by Dream☆Wing Leave a reply »

在做天晓圈子时出现这个超级无敌影分身的字了,当时测试时偶得出的结果就是—“灵异”两字。。。后来到刘哥说是IE6的BUG,套了3个DIV才OK了。。。可是考虑到圈子模块拖动的问题,每个模块都加3个DIV的话,头一晕就会出错了。。。于是。。。偷懒上网搜有没其他解决办法,还真搜到一BLOG:

在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;属性

关于这个bug的详细讨论可见:http://bbs.blueidea.com/thread-2692486-1-1.html

原来蓝色上有讨论过这问题,赞!爬完楼,发现LZ测试得出是注释引起的BUG,不过39楼的兄弟做的测试很强大,“确切的说,应该是IE6的3PX的BUG…”,根据他的测试,去掉这3PX也不会出现影分身了,很好很强大。。。明天去调调圈子试试

这几天还真忙啊,专八碰都没碰,虽然很想拿个也许以后用不上的证,论文连任务书都被老师打击为闭门造车。。。不是我闭门啊。。。是项目开发实在忙。。没时间开门啊,得分清主次,我还是认为项目对我今后的发展比较重要,所以。。。其他都靠边吧。。。。啊,文学,ROBBIN你是个好人。。。。平时分怎么能占40%呢。。。这让我怎么翘课啊

恩,以前记录在新浪博客上的,一起给转回来

  • Share/Save/Bookmark
Advertisement
Post comment as twitter logo facebook logo
Sort: Newest | Oldest