《IE中发现新BUG "重影"》

本文通过一系列测试揭示了IE浏览器中一个导致文字溢出显示的BUG,即所谓的“重影”现象。该现象与注释的位置及浮动元素的设置有关,并提供了解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在蓝色论坛看到这样一篇帖子《IE中发现新BUG "重影"》,觉得很有意思。于是在想到底是什么原因造成的呢?便做了以下测试:

实验代码如下:


 提示:您可以先修改部分代码再运行

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


 提示:您可以先修改部分代码再运行

可能以上的分析和解决方法有不到位或者不准确的地方,欢迎讨论指正。

http://bbs.blueidea.com/thread-2692486-1-1.html

原因是这样的:
<div style="float:left;"></div>里面虽然没写内容,但ie默认为存在一个字符。所以加上float:right那个400px宽的div之后总宽度就超过外层设定的400px了。改成<div style="float:left;display:none;"></div>就能修复。同样,div之间不写内容的话ie里面也会自动留出一个line-height的空行来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值