首页 > 开发 > CSS > 正文

IE中文字结尾出现重复跳字的解决办法_浏览器兼容教程

2024-07-11 08:41:09
字体:
来源:转载
供稿:网友

设计网页的时候,会经常发现在IE里会有一段文字被重复显示,看源代码只有一遍,但是在IE里会出现两边,这是怎么回事呢?该怎么解决呢?

本问就针对这个问题进行了详细的解析,希望能帮到大家.

调试代码:

<!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有相似之处。

―――――――――――――――――――――――――――――――――――――――――――

IE bug重复文字

<!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> new document </title><style type="text/css">  *{margin:0;padding:0;}  body {font:12px verdana,Geneva,sans-serif;padding:10px;}  .box{width:300px;}  .box div{float:left;width:150px;}  </style> </head> <body>  <div class="box">  <div class="box1">重复文字:</div>  <!--  -->  <div class="box2">需要您我是一只鱼</div>  </div> </body></html>

这种bug他是在ie6下面是存在的

成立条件是
他的父元素跟子元素宽度和是相等的,
子元素中间没有其他的展示内容,只有注释符合在里面就会产生重复最后一个子元素的最后一个字符。

―――――――――――――――――――――――――――――――――――――――――――

css文字重复IE bug导致文字的奇怪复制

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="//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、不放置注释。最简单、最快捷的解决方法
2、注释不要放置于2个浮动的区块之间。
3、将文字区块包含在新的<div></div>之间,如:<div style=”float:right;width:400px”><div>↓这就是多出来的那只猪</div>& lt;/div>。
4、去除文字区块的固定宽度,与3有相似之处。
5、有的人在猪后加一个<br />或者空格,但只是消除现象。
6、不要给浮动元素设置多宽度,使其不会到达包含元素的底部,或者对最后一个元素设置margin-right: -3px;或者更小。
7、注释可以这样写:<![if !IE]>Put your commentary in here…<![endif]>

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表