请选择 进入手机版 | 继续访问电脑版
收藏本站腾讯微博新浪微博
点点网模板设计大赛 phpchina

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 用悬赏 三天解决问题 解决访问速度慢 论坛支持农历生日 - 给官方提建议

论坛活动及任务 归纳网站最新活动 地图任务 邮件更新任务:保护帐号安全

积分换实物,来参加蓝色理想积分兑换吧! 联系招聘客服 蓝色理想帮你找工作! 万元奖励等你拿——点点网模板设计大赛

查看: 25341|回复: 53

[讨论] 注释在IE中造成文字溢出的研究 [复制链接]

blank 楼主

怿飞

荣誉管理

帖子
2375
体力
12545
威望
125
居住地
浙江省 杭州市
发表于 2006-11-9 17:24:19 |显示全部楼层
在蓝色论坛看到这样一篇帖子《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有相似之处。

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



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

[ 本帖最后由 blankzheng 于 2006-11-9 17:41 编辑 ]
已有 1 人评分威望 收起 理由
snwebsite + 2 原创内容

总评分: 威望 + 2   查看全部评分

个人Blog:PlanABC   团队Blog:淘宝UED  专注Web前端技术!
西部数码顶级域名注册商39元抢注!
blank 楼主

怿飞

荣誉管理

帖子
2375
体力
12545
威望
125
居住地
浙江省 杭州市
发表于 2006-11-9 17:36:03 |显示全部楼层
自己顶一个,嘿嘿……
个人Blog:PlanABC   团队Blog:淘宝UED  专注Web前端技术!
租服务器,上51IDC | [长沙]招聘:PHP经理10K/WEB前端6K/PHP开发6K

使用道具 举报

zxfly 
帖子
872
体力
2081
威望
0
居住地
福建省 厦门市
发表于 2006-11-9 17:58:02 |显示全部楼层
ie7好像没有这个bug……
ie6里面有
辛苦了,楼主

使用道具 举报

HKtity 
帖子
45
体力
89
威望
0
发表于 2006-11-9 18:17:48 |显示全部楼层
8错.
整理得透.支持`~~

使用道具 举报

蓝色怪兽

荣誉管理

帖子
4347
体力
14380
威望
69
居住地
香港特别行政区 湾仔区
发表于 2006-11-9 19:59:12 |显示全部楼层
基本都提到了,但IE6的这个重复BUG 也有些不是注释造成的,但基本上都和浮动有关系. 辛苦了,鼓励下.

使用道具 举报

帖子
528
体力
1388
威望
0
发表于 2006-11-10 09:55:34 |显示全部楼层
辛苦,支持下了· ·· ·

使用道具 举报

Kart 
帖子
168
体力
955
威望
0
发表于 2006-11-10 10:03:24 |显示全部楼层
在后面加一个<br />就解决了。
曼联天空 Manutdsky.com

使用道具 举报

客家山哥

银牌会员

帖子
3633
体力
2708
威望
0
居住地
广东省 深圳市
发表于 2006-11-10 12:26:18 |显示全部楼层
原帖由 Kart 于 2006-11-10 10:03 发表
在后面加一个<br />就解决了。

在后面加个空格就解决了。

使用道具 举报

uonun 
帖子
66
体力
167
威望
0
居住地
四川省 成都市
发表于 2006-11-10 15:52:41 |显示全部楼层
(IE6)注释的格式如果是这样就没有问题了
<!--[if !IE]>Put your commentary in here...<![endif]-->
xml+xslt 做页面?

使用道具 举报

帖子
20
体力
41
威望
0
发表于 2006-11-10 16:35:39 |显示全部楼层
谢谢分享~研究得好详细~
菜鸟美工我

使用道具 举报

鸦片

高级会员

帖子
419
体力
746
威望
0
居住地
河南省 郑州市
发表于 2006-11-15 11:53:07 |显示全部楼层
很好,过来帮顶。

使用道具 举报

rocklv 

洛克旅

中级会员

帖子
202
体力
426
威望
0
居住地
广东省 广州市
发表于 2006-11-15 12:43:39 |显示全部楼层
精神可嘉,佩服

使用道具 举报

AILY的小锤子

银牌会员

帖子
267
体力
1050
威望
0
发表于 2006-11-28 10:32:54 |显示全部楼层
在后面个DIV里面加注释会抵消前面的注释

<html>
<head>
<title>123</title>
</head>
<body>
<div style="background-color:red; width:100px; " ><!--      -->
        <div style="float:left;"><!-- --></div>
  <!-- -->
        <!-- -->
  <div style="float:right; width:100px;">我是DEADBOY<!-- --><!-- --></div><!--      -->
</div>
</body>
</html>
为结婚奋斗中。。。

使用道具 举报

resun 

寻寒

高级会员

帖子
219
体力
731
威望
0
发表于 2006-11-28 11:13:56 |显示全部楼层
呵呵,顶下.这个问题真的很头痛,不加注释的话,代码多了分析地就会很麻烦,注释是很重要的|!

使用道具 举报

lxu220 
帖子
120
体力
297
威望
0
发表于 2006-11-28 20:52:57 |显示全部楼层
谢谢分享~研究得好详细~

使用道具 举报

帖子
315
体力
1110
威望
0
居住地
湖北省 武汉市
发表于 2006-11-28 21:58:16 |显示全部楼层
原帖由 Kart 于 2006-11-10 10:03 发表
在后面加一个<br />就解决了。

根据我的实践,加空格不是不存在 只是下面多出来的就是空格了,并没有达到真正的效果..真正解决这个的还是去掉注释,给盒子+3PX的高等,
.

使用道具 举报

resun 

寻寒

高级会员

帖子
219
体力
731
威望
0
发表于 2006-11-29 09:00:01 |显示全部楼层
原帖由 uonun 于 2006-11-10 15:52 发表
(IE6)注释的格式如果是这样就没有问题了
<!-->Put your commentary in here...<!-->


这个是正解!呵呵,也符合标准!

使用道具 举报

帖子
1163
体力
4277
威望
0
发表于 2007-1-20 14:33:03 |显示全部楼层

另解

在两个float中间,加入一些东西。如字.加块级的空标签什么的也可以
忍受。一定要学会忍受。

使用道具 举报

bedabe 
帖子
12
体力
31
威望
0
发表于 2007-2-9 14:52:23 |显示全部楼层
在IE7有DOCTYPE就不会出现益出哦,就是这句了<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

使用道具 举报

XY426 

左马介

中级会员

帖子
132
体力
296
威望
0
居住地
广东省 深圳市
发表于 2007-2-10 08:57:43 |显示全部楼层
厉害。一个猪字可以讲半天!!
唉,在编程世界里实在有数不尽的地方需要仔细研究了,单单要做到 兼容 两字已经够烦,真累人,乐趣也在于此,只是时间老是不够,精力老是想要更多!!
<!----- XY426 ----->

使用道具 举报

帖子
1163
体力
4277
威望
0
发表于 2007-2-10 09:04:32 |显示全部楼层
都过去四个月了,怎么又挖出来了
忍受。一定要学会忍受。

使用道具 举报

帖子
573
体力
1268
威望
0
发表于 2007-3-21 16:04:52 |显示全部楼层
原帖由 XY426 于 2007-2-10 08:57 发表
厉害。一个猪字可以讲半天!!
唉,在编程世界里实在有数不尽的地方需要仔细研究了,单单要做到 兼容 两字已经够烦,真累人,乐趣也在于此,只是时间老是不够,精力老是想要更多!!

和编程有什么关系???当然如果你管写html也叫变成的话,就有关系了。

使用道具 举报

oerrite

高级会员

帖子
302
体力
1478
威望
1
居住地
广西壮族自治区 南宁市
发表于 2007-3-22 08:42:26 |显示全部楼层
我怎么看不到多出来的猪??

使用道具 举报

wlvis 
帖子
72
体力
355
威望
0
发表于 2007-3-22 17:05:23 |显示全部楼层
我以前也常碰到,应该是和浮动有关系,可以的话设置clear:both就可以了
---Vis---

使用道具 举报

缘客

中级会员

帖子
199
体力
1011
威望
0
居住地
黑龙江省 哈尔滨市
发表于 2007-3-23 14:36:15 |显示全部楼层
集思广益

使用道具 举报

mwgyj 

乡羽月望

中级会员

帖子
63
体力
250
威望
0
发表于 2007-5-5 18:41:08 |显示全部楼层
哈哈,前段时间我也碰到过,不过后来发现了是注释的问题了
mrmiao.com

使用道具 举报

lscn 

拎着猫的耗子

银牌会员

帖子
364
体力
1523
威望
0
居住地
山东省 青岛市
发表于 2007-5-10 10:11:58 |显示全部楼层
一般我都加个空层搞定它。
这个BUG真是烦人

使用道具 举报

alou 

小娄

银牌会员

帖子
409
体力
1669
威望
0
发表于 2007-5-10 10:13:04 |显示全部楼层
谢谢分享~讲得好详细

使用道具 举报

5dyoyo 

快乐小袋鼠

银牌会员

帖子
964
体力
2911
威望
0
居住地
广东省 珠海市
发表于 2007-5-10 11:21:27 |显示全部楼层
我一般都是这样处理 position:relative;

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

使用道具 举报

Thatman

银牌会员 手机认证 

帖子
202
体力
2868
威望
0
居住地
四川省 成都市
发表于 2007-5-10 12:33:49 |显示全部楼层
辛苦辛苦

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|安久科技提供CDN|blueidea.com ( 京ICP备05002321号 )  

GMT+8, 2012-2-4 15:07 , Processed in 0.708606 second(s), 9 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部