IE6下CSS 注释引起的文字溢出问题解决方法 - TOMMYHU - 专注互联网开发及运营技术,提供相关资料及软件下载,奇趣网络时事评论!
Oct 13

IE6下CSS 注释引起的文字溢出问题解决方法 不指定

tommyhu , 08:00 , 大前端 » CSS3 , Comments(0) , Trackbacks(0) , Reads(8027) , Via Original Large | Medium | Small
是ie6很经典的问题了,可以在重复字区域的上下部分加上一个清除浮动的hack div 代码如下,多半能解决

<div style="height:0; line-height:0; clear:both; overflow:hidden"></div>


说明:注释造成文字溢出与文字区块的固定宽度有关(无论是绝对值还是相对值)。

被解释为出现此现象是由IE6的3PX的BUG所引起的。

以下为出现该BUG的实例(请在IE6中测试运行):

<div style="width:400px">
<div style="float:left"></div>
<!-- -->
<div style="float:right;width:400px">↓注释在IE6中造成文字溢出实例</div>
</div>

解决方法一:在 去除<div style="float:left"></div> 中的“float:left;”,你会发现多出来的“猪”字不见了,页面正常显示,
解决方法二:将注释移动到<div style="float:left"></div> 的上面,页面也不会出现此BUG
解决方法三:去除内浮动层<div  style="float:right;width:400px"> 的宽度定义(width:400px),此BUG也会消失。

而在测试过程中也会发现:增加注释的条数:当1条注释时,则多出来1个字;2条注释时,则多出来3个字;3条注释时,则多出来5个字……
我们会从上面的规律中得到这样一个公式:溢出文字的字数=注释的条数*2-1,这里的字数在中文或英文数字时都成立。
当溢出的文字字数大于文本的字数时,文字区块将会消失。


其实最简单的方法就是不放置注释内容,然后这在现实的工作中会导致某些不方便。因此,有朋友也想到了,稍微注意一下,将注释内容不要放置在两个浮动层之间

解决方法五:将文字区块包含在新的<div></div>之间,如:
<div style="float:right;width:400px"><div>↓注释在IE6中造成文字溢出实例</div></div>

然而在我的工作中却发现,我不仅仅只有注释会引发此BUG的出现,在网页间使用JS代码标签"<script>"这会出现此问题。如:

<!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>注释在IE6中造成文字溢出实例</title>
</head>
<body>
<div  style="width:400px">
<div style="float:left"></div>
<script type="text/javascript">
</script>
<div  style="float:right;width:400px">↓注释在IE6中造成文字溢出实例</div>
</div>
</body>
</html>

▲返回顶部
Last modified by tommyhu on2010/09/23 22:20

Add a comment

Nickname

emotemotemotemotemotemotemotemotemotemotemotemotemotemotemotemot