IE下的浮动造成的右边距问题解决方法

设置一个宽800像素的容器,然后让容器里的A元素左浮动。一切正常。

这个800像素的容器如果设置左内填充(比如50PX),问题就出现了:容器的右边似乎出现了一个50PX的占位。而且这个占位的变化很不确定,似乎跟A的长度有关。

<!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>
<style type=”text/css”>
<!–
.px800 {height: 50px;width: 800px;background-color: #FFFFCC;padding-left: 50px;}
.px800 a {line-height: 50px;background-color: #FF9900;font-size: 14px;padding-right: 20px;padding-left: 20px;float: left;}
–>
</style>
</head>
<body>
<div><a href=”#”>上山打老虎</a><a href=”#”>上山打老虎的人</a><a href=”#”>上山打老虎的人的枪</a><a href=”#”>上山打老虎老虎的人的枪的子弹</a><a href=”#”>上山打老虎老虎</a></div>
</body>
</html>

解决方案是:在A的样式中指定不换行:white-space: nowrap ,问题就消失了。在firefox下没有这个问题,如果设置A右对齐也没有这个问题。我不知道这个现象是不是已经讨论过了,能不能给个解释,是什么造成了这个莫名其妙出现的占位。如果他确实产生了内填充,那么设置一个不换行样式应该还是不能解决问题的啊。恳请有识之士赐教。

为了便于不使用IE6的同学查看效果,贴上对比图。


存在问题的图

加上禁止换行后的图

windows media编码器中避免使用特殊文字

今天在给《盗梦侦探》处理WMA文件的时候,在属性说明中使用了日文,结果出现一个奇怪的现象:网页播放到最后,WMA脚本自动刷新页面后,页面内的播放器假死。

以前同样的声音文件正常,怀疑是这次使用了特殊字符编码格式,IE准备再次载入时检查文件完整属性,碰到了不常用的日文,造成堵塞。用文件编辑器把日文换成中文就OK。

虽然我目前还没法肯定问题就一定出在这里,因为作为国际化的软件不应该会出现这种问题;或者问题只是偶尔解决了……但是尽量避免在文件属性中使用特殊字符无疑是安全的策略。

摆脱“星空极速”的纠缠,哦也!

给办公室电脑重装系统已经过去半年,掐指一算,现在该让它再轮回转世一次了。

昨天下午,我怀着QJ系统的心情试装了好几个软件,不到半个小时,系统就很识趣的“崩溃”了,连“INTERNET连接共享”都失效了。一时间,那些平日通过它共享上网的同志们呼天喊地,嘿嘿,意料之中的事情,安拉安拉,4分钟恢复一下就OK了。哪晓得,这是一个绵延30小时痛苦的开始。

首先找茬的是系统恢复盘。一直都是用“深山红叶”,正好最近拿到了最新的“嫦娥一号纪念版”。本以为新年新气象,新盘开新花,结果这个号称强得不得了的版本启动到DOS界面下竟然会死机。无奈进入PE环境恢复GHO。速度那叫一个慢。在长时间等待后,老版本光盘惊现眼前,马上RESET,用老盘恢复了系统。

恢复的系统是半年前做的,一开机,等待我的就是无数的升级信息,WINDOWS的有26个、30来兆,病毒库24M,谷歌拼音也来凑热闹,CORELDRAW蹦出来提示注册……一个个打发了以后,WINDOWS又蹦出了更新的第二梯队,就好象才送走一帮穷亲戚,刚想喘口气的工夫又冒出来一批。唉,接着打发呗。

快下班的当口总算差不多了。翻出ADSL的用户名密码、星空极速拨号软件,设拨号,设共享,改IP……一通常规操作,刚想欢呼胜利,结果发现系统的“internet连接共享”还是没有作用。面对群众们期待的眼光,我冒了汗。没道理啊,没理由啊,不可能啊,这种设置共享的活人人都会干,今天我却玩砸了。查系统、查服务、查权限、查每一个细节……本着坚决拥护考勤制度,决不主动加班的原则,在满腹狐疑中下了班。

今天早上,大雪飘飘,好一个美丽的童话世界啊!而我,继续昨天的噩梦。

该找的都找了,该重来的都重来了,没道理啊,拨号的本机可以上网,与所有客户机IP通讯正常,就是不能连接互联网。这么简单的网络设置,以往我可以跟念经一样背诵的操作步骤,今天却卡住了。恼!

趁着同事不在座位上,我把他的电脑作“示波器”,PING -t。然后我在本机上漫无目的的操作起来,期待那黑色的屏幕上会出现奇迹。当时我的神态一定很象个棋手,或者是个塑像,反正我也不知道坐了多久、做了些什么、想了些什么。就在一筹莫展的时候,无意间我的旁光看到黑色屏幕有了反应。当时我可能是蹦起来的,凑近了一看,又是稀奇的一幕。通是通了,但超时得太严重了,而且我也不记得这些ping通出现的时候我究竟干了什么。奇怪奇怪。于是坐回去,继续冥想。没一会,我发现只要我把电信网络断开,黑色的屏幕上就能出现“奇迹”。

“从网上下来,才能上网”这种逻辑太哲理了,我这没文化的人吃不消这么严重的哲理。终于,我怀疑是伟大的中国电信将网络共享禁止了。于是我跑到机房里,把网通和电信的ADSL交换一下测试,看看是线路的问题还是系统的问题。不测不知道,一测忘不掉,现在的科技实在是太发达了,网通送的MODEM只能接网通线路,电信送的MODEM只能接电信线路,两者竟然不能通用……搞什么啊~。最后,我还是武断地判断:我真的是被中国电信禁了。

我真傻,我以为网络共享被禁止是会出现提示的,或者所有的电脑都上不了网,好让用户可以打10000去向电信的叔叔阿姨们告解。哪知道现在的中国电信科技已是如此发达,可以保留本机上网不受影响的前提下,绝杀所有企图偷渡的数据。黑屏上的“奇迹”是因为中国电信断开的时候,那些急于找到出口的数据通过我的电脑找到遥远的大楼路由器,他们在那个狭窄、可怜的网通出口与互联网相连了。干!封共享就封共享,做得这么斯文干什么,扮纯情就不是X子了吗?

网关代理封了,HTTP代理总可以吧?兴冲冲搞了个FOXY下来,全WEB页面管理的代理服务器,虽然是英文,还满好懂,没两下就搞定了,真顺利~咳,太顺利了!是的,太顺利了的好事常常不是真的。

HTTP代理只正常了半个小时,就在我重新整理系统准备正式在办公室部署HTTP代理的时候,电信再次伸出了魔爪……HTTP代理又失效了。真TMD啊!

现在,我能做的都做了,忙活了一天,一切还是27小时以前的样子。如果世界上被中国电信“星空极速”囚禁的人只有我一个,那么我是真的很倒霉,世界上被中国电信“星空极速”囚禁的人只有我一个吗?不止,所以我还不是最倒霉的。其他的阶级兄弟是怎么解决问题的呢?“星空极速,共享,破解”一搜,出来的全是路由器破解方案,而且基本上是人云亦云的转贴,没有一点技术含量,这种文章我的网站早有了。说到底,“星空极速”就是在一般的PPPOE登录方式基础上加入了一些算法生成的字符,这些字符在一般的情况下无法输入,从而限制使用路由器等方式共享上网连接。但是我碰到的问题真的可以通过改变拨号软件就能解决吗?服务器端会放过我?试试吧。

找来算号软件、DLL补丁,虽然号称是XP专用,但是2003应该也没问题吧,不就是个登录界面?一切就绪,新帐号被生产出来,填入登录窗口,“确定”的那一瞬间,我好像在看阿波罗发射……哦也!拨号验证通过……浏览器工作正常……HTTP代理服务器复活……网关代理复活,破解圆满成功!共产主义实现了!

我得意地敲了一下桌子,暗叫声“苏婆漫”,好家伙,传说中的星空极速就这么被搞定了。下午铁通客服打电话来问我是否继续续费,看到这么头大的极速星空我曾犹豫了那么半秒钟才拒绝她的优惠诱惑,现在我可以理直气壮叫铁通滚蛋了,2.4元的拆机费就算为这该倒闭的垃圾公司的遣散费做贡献吧。我为今后能靠上中国电信这个大款而感到欣慰。没错,我这么想确实很贱,被蹂躏了一天还在想着给这个冤家投怀送抱。不过,同样是卖笑,我还是乐意卖给财大气粗的大款,而不是打肿脸充胖子的中干郎。

转过神来才发现同事们早已下班,叫嚷了一天的马路此时也安静下来。桌上有块几天前的巧克力冻米糖。

唔,味道不错。

修正“清除浮动”后产生的双倍下边距

为了让FF能撑开父容器,所以加入了一个清除浮动层,谁知道FF的问题解决了,IE却出了个双倍底边距的问题,上边空50,下面就会空100。试了常见问题中的“双倍边距”解决方法,没有作用。如果取消这个清除浮动层,问题消失,所以基本确定症结是浮动产生的混乱。

<!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>
<style type=”text/css”>
<!–
* {margin: 0px;padding: 0px;border: 0px;}
body {background-color: #480001;}
.book_list {padding: 100px; width: 720px;margin: 0 auto;background-color: #FF9900;overflow: hidden;}
.book_list_li {float: left;height: 170px;width: 330px;background-color: #990000;}
–>
</style>
</head>
<body>
<div>
<div><ul>
<li></li>
<li></li>
</ul></div>
<div style=”clear:both;”></div>
</div>
</body>
</html>

试了很多方法不行,无意给没有属性的DIV加上边框后问题消失,意识到可能是IE的haslayout问题。于是让“<div><ul>”中的DIV获得layout,设置属性,且高为1%就可以让他得到layout。显示正常。

Magic.Swf2Avi.3.12处理tga序列的BUG

喜欢上Magic.Swf2Avi是因为当年试遍所有能找到的SWF转换软件,只有他支持alpha通道,所以自那以后遇到swf的转换任务就全靠它来完成。今天却碰到了一个问题,应该算是一个bug。
这个bug的现象是:有一个带声音的4000帧的文件,生成DVD文件没有问题,生成tga序列却只认3000余帧,其余的都被不规则的丢弃了。

分析:起初认为是这个flash的版本太高,但是降低到6.0版本依然不行;怀疑有特殊的剪辑片段影响了识别,但是仔细看了看,没有任何特别之处,甚至AS脚本代码都没有一个。后来实在没法子,戴上耳机仔细看一遍原始文件,这才发现Swf2Avi在提取tga序列的时候,播放器同时在播放影片的声音,而且音画不同步。怀疑声音的播放影响了软件提取画面,造成有声音的部分丢失大量的画面帧。而Swf2Avi生成DVD文件时,音画是分开采撷,所以不存在这个问题。立刻生成一个无声文件,再转换成tga序列……世界和谐了。

结论:Magic.Swf2Avi在提取静态图片的过程里不应该开启声音播放。实践中这样做既起不到预览效果,而且影响自身对画面的采撷任务。这是一个比较重大的bug,应该是软件测试不完全造成的。

不过迄今为止,Magic.Swf2Avi依然是最强的,即使3.12“和谐版”的AVI功能依然无法使用。有tga序列生成和DVD文件生成,谁还在乎AVI是否被支持呢?

【疑难排除】导致IE、FF混乱的神秘字符

今天调试代码的时候发生了一个灵异现象。相关的三个文件打包如下:

点击下载此文件

文件中有两个页面:01.htm和02.htm。两个文件看似一模一样,但是无论是用IE还是FF浏览都存在问题。

在IE下02.htm在首位空了一行,“另存为”以后,标签的位置也发生了错乱。而01.htm不存在问题;

在FF下似乎两个文件完全一样,但是用web-developer工具“查看处理后的原始码”,会发现代码也发生了混乱,一个大大的空间被撑了出来。

用其他工具比较不同,我的EDITPLUS2.13看不出区别(据说2.11版本可以看出隐藏字符)。搞了半天,最后在记事本中通过移动光标的方法,发现文件最原始部分存在一个隐藏的字符。就是这个字符导致了两个浏览器的理解混乱。

如果有兴趣的话,这个鬼魅一样的字符可以在02.htm中轻易的复制提取,然后粘帖到别人的文档中,从而让别人也挠一下午的头……。

2010-11-06注:这应该是UTF-8格式文件的BOM头闹出的问题