一周CSS怪异事件记录

网页上代码累积多了就会出问题,这周遇到了几个奇怪的现象原因不明,不过好歹还是给解决了。

  1. 同一行上margin设置了后应该都是垂直居中的,最近做的一个项目里margin-top和margin-bottom值不一样在IE7下面却无法实现居中,将其值设置为一致解决了部分问题。更奇怪的是也可能出现一两个像素的偏差,同时设置height和line-height解决问题。
  2. 多个css类选择器无法水平居中对象。偶们的日期控件加了一个Reset按钮,这个按钮有两个css的class,里面分别设置了margin,问题就来了,即使有优先级,也无法居中。去掉其中一个CSS仍然无法居中,同时给父级元素加text-align:center居中,解决问题。
  3. 上面2的问题解决后又出现一个背景蒙版层和蒙板层上的内容的margin-left:0失效,若干CSS Hack调整不同浏览器下的margin-left值后解决问题。

导致的原因总是会有的,代码太多很难查出来,两小时无法完成也只有HACK了,这里记录一下。
-EOF-

JS Image对象图片类型合法性

有时候文件名后缀是可以伪装的,比如说将一个记事本文件xx.txt改成xx.jpg,这时候只利用后缀来判断选取的文件是否满足条件就不靠谱了,此时Image对象就派上用场了。
如果图片无法显示那当然是不正确的格式了,会引发onerror事件,代码如下:

另外onabort事件目前仅有IE支持,FF,Opera,Chrome,Safari统统不支持。
FAQ:如何激活Image对象的abort事件?
A:弄一张超级大的图片(比如说4M),等浏览器载入到一半的时候按停止载入。
-EOF-

Judge Online System最终版

好吧,时隔一年,我又回到这个话题上了。其实去年就有说完成答辩以后就放出所有的内容,不只是代码,一直没时间整理。而且使用的技术古老与不协调(asp&vb.net),我想整理了也没多大意义,在此将毕业时所上交的文档完全释放出来。提供了中文版的完整安装文档,更方便部署时参考。由于使用的技术古老加之时间和精力有限,该版本不再继续更新。需要相关系统可以参考其它开发者的,以及我之前的资料,我这个版本就权且给大家做个参考。希望能有开发者出来开发更加优秀的类似系统,使我们学生与老师从中受益。

项目页面 http://code.google.com/p/judgeonline/
下载 [download id=”19″]
下载 [download id=”20″]
-EOF-

GAE应用维护解决方案

很显然我们在版本升级的时候不希望有用户正在操作,更多的是希望升级以后能有一个简短的线上测试。因此我们可能会选择服务中断一定的时间来完成这些任务,当我们在维护的时候,关闭访问,呈现给用户一个维护页面。这个其实称不上解决方案,GAE本身提供了这么一个隐性的功能,利用版本号(version: 0)的差异,使我们可以无缝升级。

只是当数据库有变动的时候这种操作就比较危险了,还是提示给用户一个维护页面较安全。因此我做了一个通用的“System is maintenance.”页面,版本号为0,将application: oops改成相应应用的名字,部署到服务器上去,在需要关闭访问的时候切换到这个版本即可。维护和测试人员可以访问http://2.latest.app-id.appspot.com 形式的版本网址进行维护和测试。

下载 [download id=”18″]
-EOF-