多了一只猪:IE6下文字溢出BUG及解决办法(转载)

0

实验代码如下:

<!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">↓这就是多出来的那只猪</div> 
</div> 
</body> 
</html>

1、在IE、FF中测试,只在IE出现文字溢出现象。
说明:注释造成文字溢出是IE的BUG。
2、去除

<div style="float:left"></div>

中的“float:left;”,你会发现多出来的“猪”字不见了,页面正常显示
同样去除

<div style="float:right;width:400px">

中的“float:right;”,多余的“猪”字也同样消失,页面正常显示

说明:注释造成文字溢出与区块的浮动有关。
3、将注释转移到

<div style="float:left"></div>

前面,多余的“猪”字消失,页面正常显示

将注释转移到

<div style="float:right;width:400px">↓这就是多出来的那只猪</div>

下面,多余的“猪”字也同样消失,页面正常显示。

说明:注释造成文字溢出与其位置有关。(可与第2点结合理解)
4、去除

<div style="float:right;width:400px">

中的“width:400px”,多余的“猪”字消失,页面正常显示

说明:注释造成文字溢出与文字区块的固定宽度有关(无论是绝对值还是相对值)。
5、增加注释的条数:当1条注释时,则多出来1个字;2条注释时,则多出来3个字;3条注释时,则多出来5个字……

我们会从上面的规律中得到这样一个公式:溢出文字的字数=注释的条数*2-1,这里的字数在中文或英文数字时都成立。
当溢出的文字字数大于文本的字数时,文字区块将会消失。

说明:溢出的字数与注释的条数有关。
由1和2的测试得知:注释不要放置于2个浮动的区块之间。
解决方法:
1、不放置注释。最简单、最快捷的解决方法,嘿嘿……

2、注释不要放置于2个浮动的区块之间。

3、将文字区块包含在新的< div>< /div>之间,如:< div style="float:right;width:400px">< div>↓这就是多出来的那只猪< /div>< /div>。

4、去除文字区块的固定宽度,与3有相似之处。

—————————————————————– 后续讨论:

注释的格式如果是这样就没有问题了

<!–>Put your commentary in here…<!–>

后来有查阅到其他文章提到type=hidden的input以及display:none的div也会导致文字溢出的BUG

在IE7有DOCTYPE就不会出现益出哦,就是这句了

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

发表评论

您的邮箱不会公开,当您的评论有新的回复时,会通过您填写的邮箱向您发送评论内容。 必填字段 *

为何看不到我发布的评论?

正在提交, 请稍候...