关注前端开发微信微信号web007007

IE6下那只猪[IE6文字溢出BUG]

作者 管理员 发布时间 2012-06-27 01:45 文章分类 DIV&CSS 文章评论 抢沙发 阅读次数

先看HTML代码:

<pre><div style="width:350px;">
	<div style="width: 350px;"></div>
	<!--–- 我是华丽的注释 -–-->
	<div style="width: 350px; float: right;">偶就是那只多出来的猪</div>
</div>

逐个分析:

test-1:
去掉<div style=”float:left;”></div> 中的“float:left”,就会发现多出来的“猪”字不见了,页面正常显示;
同样去除 <div style=”width:350px;float:right;”>中的“float:right”,多余的“猪”字也同样消失,页面正常显示。
分析:文字溢出与区块的浮动有关。

test-2:
把注释放到<div style=”float:left”></div>前面,多余的“猪”字消失,页面正常显示
把注释放到<div style=”width:350px;float:right;”>偶就是那只多出来的猪</div>后面,多余的“猪”字也同样消失,页面正常显示。
分析:文字溢出与注释位置有关。

test-3:
去掉<div style=”width:350px;float:right;”>中的“width:350px”,多余的“猪”字消失,页面正常显示。
分析:文字溢出与文字区块的固定宽度有关(设置了width)。

test-4:
增加注释的条数:当1条注释时,则多出来1个字;2条注释时,则多出来3个字;3条注释时,则多出来5个字……
从上面的规律中我们会得到这样一个公式:溢出文字的字数=注释的条数×2-1 (这里的字数在中文或英文数字时都成立)
当溢出的文字字数大于文本的字数时,文字区块将会消失。
分析:溢出的字数与注释的条数有关。

综合总结解决方案:

1、去掉注释。(当然,有些时候注释是非常必要的,所以不是非常推荐)
2、注释不要放置于两个浮动的区块之间。
3、给文字区块再外嵌套一个div,如:<div style=”width:350px;float:right;”><div>偶就是那只多出来的猪</div></div>。
4、去除文字区块的固宽width。
5、给文字区块设置position:relative;。

PS:
●type=”hidden”的input也有可能引起该BUG,解决:将该input放在form下或参照方案3。
●display为none的div也有可能引发此bug,解决参照方案3。

本文固定链接: http://www.web92.net/495.html | WEB前端开发

该日志由 于2012年06月27日发表在 DIV&CSS 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: IE6下那只猪[IE6文字溢出BUG] | WEB前端开发
关键字: