注释在IE中造成文字溢出的研究

canca16年前 (2008-06-06)Div + CSS282

在蓝色论坛看到这样一篇帖子 《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>多了一只猪</title> </head> <body> <div style=”width:400px”> <div style=”float:left”></div> <!– –> <div style=”float:right;width:400px”>↓这就是多出来的那只猪</div> </div> </body> </html>

1、在 IE、Firefox 中测试,只在 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 有相似之处。

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

相关文章

CSS Hack 汇总快查

屏蔽IE浏览器(也就是IE下不显示) *:lang(zh) select {font:12px  !important;} /*FF,OP可见,特别提醒:由于Opera最近的升级,目前...

CSS hack浏览器兼容一览表

CSS hack是指我们为了兼容各浏览器,而使用的特别的css定义技巧。这是国外摘来的一张CSS hack列表,显示了各浏览器对css hack的支持程度,对我们制作兼容网页非常有帮助。  ...

XHTML+CSS兼容性解决方案小集

使用XHTML+CSS构架好处不少,但也确实存在一些问题,不论是因为使用不熟练还是思路不清晰,我就先把一些我遇到的问题写在下面,省的大家四处找。 1.在mozilla firefox和IE中的BOX模...

如何处理不同浏览器之间的样式表的兼容性问题

IE 不支持 "min-height" 样式本站是这样解决的:.contents { ... ...; min-height:380px; ie-only:expression(this.style....

关于IE、Firefox、Opera页面呈现异同

以下的东东,有些错误,请注意. 1.document.formName.item("itemName") 问题   说明:IE下,可以 使用document.formName.item("itemNa...

IE Firefox Hack

IE都能识别*,标准浏览器(如FF)不能识别*;IE6能识别*,但不能识别 !important;IE7能识别*,也能识别 !important;FF不能识别*,但能识别 !important;例如s...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。