IE6下溢出多余文字--多了一只猪
在IE6中,会无缘无故多出几个字儿来,这是IE6BUG。
下面把自己做后的总结整理下:
方案1:
原因:出现这种情况绝大多数都是与浮动有关系的。[通常都是用这个方案解决的]
解决思路:检查下出现这种情况的容器(比如DIV)是否有用到浮动,并且,当前浮动是否有必要应用;如果即使不用浮动也可以达到效果话,就将浮动去除。或是,加一个"Clear:both"清除浮动。(像绝对定位以及浮动这些属性,一般是能不用就不用,至于为啥俺说不出来,我是完全凭感觉做事的,事实证明我这么做是正确的)
方案2:
原因:检查代码中是否有添加注释。
解决思路:如果代码中包含了注释,可以尝试下将注释删除后是否会正常显示。(因为曾经有次我有遇到过这么个情况,所以导致我一直到现在都不敢再在代码里写注释)另一个好玩的就是,如果这个Bug真是因为注释语句引起的话,那么,每添加一条注释语句,界面中就会多出一个溢出文字。也就得到了一个公式:溢出文字=注释条数X2-1(不管文字是否为中英文),当溢出的字数大于总字数时,文字区块就会消失。今天在百度中发现了另一种写注释的方法,可以达到既能写注释,又会必免再次出现这种情况的两全的办法:可以用IE注释,语法是:<!--[if!IE]>注释语句<![endif]-->;第二种解决办法是:将注释语句写在Div容器里边;
方案3:
原因:如果代码是在form表单中的,检查表单里是否包含Hidden标签。
解决思路:如果表单中包含hidden标签,需要在hiddent标签外加对<div></div>来把它包住。(具体原因不是很了解,只知hidden标签不能直接在form里显示,如果实在解决不了这个IE6Bug时,不妨套用下试试)
方案4:
原因:用Div将文字一层一层包住。
解决思路:当把文字区域用DIV一层一层包住时,会惊奇滴发现:多余的文字也在一个一个减少。但是这种做法超级笨,典型的治标不治本。不建议使用。
方案5:
原因:在文字区域后加入'<br/>'或空格符。
解决思路:通过在文字区域后加入换行符与空格符也会解决不显示多余文字的问题,不过同样的,这个解决方案并不能根本的解决问题,因为它溢出的不是文字而是换行符或空格符,所以只要界面排版没有影响就看不太出来。
方案6:
原因:给文字区域加入'Prostion:relative'属性。
解决思路:通过给容器设置Prostion也会解决这个IEBug。
方案7:
原因:浮动文字区域的容器有设置固定宽度。
解决思路:将固定宽度去除,会很好的解决这个IEBug。
方案8:原因:IE63pxBug。解决思路:将容器固定宽度-3px;或设置margin-right:-3px;同样会解决这个Bug。(需要注意的是,更改宽度后是否会影响到排版)
来源:http://hi.baidu.com/lhcling/item/d96b1245817e67e3bdf451b2
http://bbs.blueidea.com/thread-2692486-1-1.html