九月 18th, 2009

打广告

5 Comments, 前端设计, 设计&绘图, by hitigon, 268 views

又石圈的名片终于出来了 T _ T

上图,只拍了正面

IMG_0246

这就是所谓的“新手卡”了

另外推广了一下 又石圈的最新功能 “圈知道”

http://ozhidao.woosuko.com/

类似Wiki百科,所有内容主要针对在韩学生(当然现在主要是 又石大学咯),虽然现在内容比较少,但慢慢会丰富起来,对刚来韩国的同学很有帮助

九月 15th, 2009

Normal days

2 Comments, 韶华白首, by hitigon, 175 views

爬着代码,爬着文字

看了会friends,想晚点睡,却掩盖不了疲惫

页面仍然没有完成,但总算又进了一步,已经20天了,进度如此缓慢

最近不好也不坏,实验室被封锁后,短暂的象征性大学院生活似乎和我脱离了关系,继续往返于宿舍和学图,偶尔去上上课

烦心的事情也很多,主要现在太懒了,懒得动,懒得出去做些什么

虽然有时我很自以为是,但也厌恶看见那些自以为是的家伙,总在臆断,总在编织假象蒙骗自己,想学就先摆正态度

大概我也完全做不到,所以看到别人这样,自己更加生气……

据说流感严重,可宿舍的水经常保持低温,没有固定洗澡时间的我煎熬着,期待下次开淋浴是热水……

渐渐秋凉,来韩国两年了,看到新生就想起当初的我们,很傻很天真,当初的我还是一个实足的宅男,却不知道再过两年会是怎样

感情上的负担没那么重了,但时常也会想起,偶尔抓狂一下,却也没什么,学习工作的时候已经比以前投入很多,时间真的是良药,秋风也可以很惬意……不过,我也全然没了她们的消息

走在路上,问着自己,还在等待些什么?!

三点一线的生活,听歌、看美剧、看小说、看书、写代码、健身,一个人……

九月 14th, 2009

高度100%的页面布局

No Comments, HTML&CSS, 前端设计, by hitigon, 234 views

有时候可能我们会遇到这样的设计,内容需要在浏览器一屏范围内显示,而不会出现滚动滚动条查看内容的情况

如一些富Web应用,让你感觉更像在操作一个程序甚至是窗口界面系统

追述过去,聊天室这类的Web应用就是如此,而往往我们会首先考虑框架元素(Frame)嵌入不同的html页面实现

特别是早期的类似Ajax应用就会用到框架这个古老的元素

但很显然,追求页面标准化和Web设计现代化的结构设计师不会首先框架,而我也因为个人原因比较厌恶这个玩意儿

好了,讲了这么多废话,无非是想用无框架的做法将页面结构和样式做出来,并且要保证IE下完美(近似完美)的表现

这是我的Html 内容,我所做的结构是一个简单的,由顶部、内容、尾部组成的页面

1
2
3
4
5
6
7
8
9
<div id="wrapper">
<div id="navBar">
<div class="stretch">Top content here</div>
</div>
<div id="chatContent">
<div class="inner">Chat content here</div>
</div>
<div id="chatInput">Input Area</div>
</div>

这是一个近似于Omegle匿名聊天室的结构,当然它放弃了IE6用户,但我可不能 T T

顶部的navBar和底部的chatInput区域是固定高度的,但主体内容chatContent则需要来自适应了(不同的分辨率,不同的浏览器都不同)

很多人会想到用JS的方法来实现,但显然并不是一个好主意

下面来看怎么用CSS来尽力保证浏览器们显示正常,让用户得到一个合理的“画面”

首页我们按照标准来制作,为了保证一切都在自己应该在的位置上,那么我们就要用到绝对定位

1
2
3
4
5
6
7
8
9
body {color:#333;font-size:62.5%;text-align:center;background-color:#e5e3db;height:100%;}

#wrapper {width:100%;height:100%;}

#navBar {position:absolute;left:0;right:0;top:0;height:3.2em;background-color:red;}

#chatContent {position:absolute;top:5.2em;bottom:15em;left:2em;right:2em;background-color:yellow;}

#chatInput {position:absolute;left:2em;right:2em;bottom:1em;height:10em;background-color:blue;}

Ok 这样完成了第一步,看看FF下的效果,拉伸浏览器看看,我们完成了一个100%高度的布局

可是IE 6可不这么认为你的布局是这样的,对决定定位的元素,它仅仅会适应其内容的高宽,这样就破坏了我们精心设计的布局

那如何解决呢?我请教了一下google发现国外有一个案例

http://www.pmob.co.uk/temp/fixed-header-footer-left-new.htm

这个案例很好的解决了IE6 的问题,不需要任何JS,仅仅添加一些仅让ie 6读懂的元素

于是根据这个案例我写下

1
2
3
4
5
<!--[if ie]>

<mce:style type="text/css"><! html, body {overflow:hidden;} * html {padding:5.2em 0 15em;} * html body{padding:5.2em 0 15em;padd\ing:0;} * html #chatInput {width:97%;} * html #chatContent {width:97%;height:100%;position:relative;margin-left:2em;margin-right:0;left:0;top:0;right:0;bottom:0;float:left;display:inline;} * html .stretch{width:100%;} * html .inner {position:absolute;height:100%;} -->

<!--[endif]-->

可以看到上面html中两个类 stretch 和inner起到了作用,用于“撑大”父层,为100%高度提供了必要元素

*选择器对html元素设置了padding以“提供”chatContent一个有效的范围,这样chatContent设置为relative进行重新定位留在了文档流中,就拥有了高度

至于宽度,完全是利用百分比,所以这个方案中缺陷就这里,不能完全统一IE6中容器的宽度,但影响不大,如果再结合JS就能比较完美了

(* html body{padding:5.2em 0 15em;padd\ing:0;} 是为了兼容ie 5.5)

这样基本上就完成了浏览器兼容问题,可以进一步的设计下去,当然在实际案例操作中还会有很多问题,特别是更复杂的布局情况

有什么问题,请留言,一起讨论,水平有限,欢迎指出文中的错误,转载请注明本站

九月 12th, 2009

十年

13 Comments, 韶华白首, by hitigon, 211 views

回到1999 年9 月

稚嫩的小孩,初一,听话、乖巧、认真、好胜、正直、胆小、懦弱、怕事、天真……还会哭……

慢慢认识一个人,就在我周围,却要通过网络联系……

有些,很遥远,并不明白,两个人可以有交集,但或许永远不能合并……

两年后,坐在身后的女孩,喜欢,越来越喜欢……

那个小小的身影,却是那么遥远

再之后,一同走入一所高中

只记得女孩的背影,只记得女孩的自行车,只记得女孩的笑容……

经历三年的高中,经历一场高考

慢慢蜕变……

一句喜欢,在一个午后,下着雨,依旧网络……

Susan说,女孩听着歌……

拒绝也罢,有种解脱,那个魂牵梦绕的人是否可以放下?

而那一天,为什么有那么多意义

高考的失败却得到了爱情

……

那个炎热的夏天,一个傻子抓住了女孩的手,想着抓住了就不要松开

……

2005-6-25 ——- 2007-12-19

这是我们最美好的时光

……

如今

这里的天很蓝,云很美,但那个女孩愈渐娴熟的镜头下再也没有我的身影

……

回到风淡云轻的日子

Web服务器在接受访问请求时,对未加斜杠的情况都会先理解为文件,在为找到对应文件的情况再搜索文件夹。大多数情况我们不会察觉这些问题,但也会有服务器比较极端返回404错误;再者,搜索引擎对URL末尾是否存在斜杠是不同看待的,认为是两种路径,但让搜索引擎获取了相同内容的话,这就引起了Duplicate Content(重复内容)的问题,带来不良的后果,影响排名~

所以在一定意义上要重视斜杠问题!

对我们的服务器配置,出现了更多的理由要解决这个问题!

那就是在利用Http_proxy进行整合apache和tomcat后,如前文所示,apache将解释jsp的工作交给了tomcat,也就是http://127.0.0.1:8080/,而令人头疼的情况出现了,当我试图访问子目录下的站点http://www.woosuko.com/ozhidao 却返回 http://127.0.0.1:8080/ozhidao/,且这种情况是针对该目录确实存在于网站中(否则会返回404),我现在还不能完全解释这种情况的产生,但明白一定是缺少斜杠造成的(或许是代理的BUG?)

关于这类的文章有很多,再次然我郁闷的是很多都写错了……

于是结合网络的内容,我们利用Rewrite在配置文件中写上(如前文也可以写在.htaccess)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}$1/ [R=301,L]

再次简单解释 匹配的对象是文件夹且末尾没有斜杠,符合条件的自动301强制跳转为由斜杠的

重启Apache,大功告成!

补充有些情况下不能加斜杠(如Java servlet请求),则需要排除这些不是真实目录的情况
RewriteCond %{REQUEST_URI} !Name$