精通CSS?

2009-02-09 17:37

经常看到些招聘都要求精通CSS,然后后面也会有一大群人信心十足地回复“精通CSS”“手写代码”“通过W3C验证”“兼容IE5678,FF,opera,safari…”,姑且对你对自身认识的准确度不谈,你所罗列的这一大堆东西你真的觉得是有意义的吗?

难道CSS的最高境界就是熟知各浏览器的对HTML/XHTML,CSS解析的差异性,然后熟记一大堆hack技巧?表现上差异性,hack技巧可以说都是可以量化的,是可以通过付出时间成本来获取的。你用了两年的实际工作时间,通过你的辛勤实践总结掌握了很多不同浏览器表现上的差异性,也通过各种手段解决了这些差异性,做到了完美的兼容,你觉得你很有经验,你精通了CSS,你很牛叉了。可是事实上,你引以为傲的这些东西,一个勤奋的学生可能通过书籍、搜索引擎两个月就搞定了。然后某天,浏览器市场在经过多年的厮杀和开发者的口诛笔伐后实现了天下一统,你所有的付出、你所有的经验、你所有的精通就会在一夜之间迅速贬值!这一天是完全可以预见的!

但并不是说研究浏览器对HTML/XHTML、CSS解析的差异性毫无意义,熟知这些东西对提高工作效率还是相当有帮助的。只是它的意义远没有到要把它当着神一样膜拜的地步,也绝对不应该成为你学习CSS的终极目标。

知识技术的研究要么是基础研究要么是应用研究的。显然,对于大多数开发人员而言都属于应用层面的研究,所要做的就是如何灵活运用已有的技术成果高效率的去完成工作。而具体到web前端开发,具体到页面制作人员,重心就应该是在如何去构建简洁、强壮、易扩充和高效的代码上面!而不是成天在无数个浏览器之间来回切换地去寻找表现差异性的规律,它们在很多时候就是没有规律的,还有很多时候是你庸人自扰,本来可以很简单的页面结构你却写的更复杂,兼容性问题自然就会更多,这就是自己给自己制造麻烦。浏览器自身的缺陷留给他们自己去解决,你的没日没夜的辛勤劳动在那帮开发浏览器的家伙眼里也就是自作多情罢了。

简洁、强壮、易扩充和高效的代码不但能提高页面效率的,为JS编程提供良好的接口,同时能够大大的提高开发效率和质量。但是这个却是很难从书上看来的,只能在实践中不断的总结积累,属于经验问题。在我刚接触CSS的时候,看了很多到底是该用id还是class的文章(相信很多人都看过~囧~),现在想来价值甚少,到底是用id还是class绝不单单是id只能唯一而class可以重复多次使用的问题,你还得为JS编程提供了好接口作更多考虑~···大型项目样式文件结构的安排,命名规则,页面结构往往也并不如想像中那样随意和简单,经验问题,仁者见仁,智者见智。

兼容性的研究,适可而止,不要走火入魔!好久没更新,随便扯两句~···

I am back

2009-02-01 15:38

我好像越来越自闭了,很多次我都会写几个字然后又会觉得太幼稚,然后就会猛按“Delete”~···

十天的春节假期结束了,基本是按计划来的。27中午放假后找同学先玩了一天,29人基本都走完了,所以我也闪了。29到初四和父母在一起过年。初四晚上到了珠海,我想象中的美丽的海滨城市和东莞的制造业小镇基本没什么两样,大失所望~···还看到了小平同志的题字——珠海经济特区好!好×××

今年CCTV的春晚我瞟都没瞟一眼~昨天中午从珠海回来后看了看本山大叔的小品,也让我很失望,比以往的小品至少降了一个档次。笑点太少,小沈阳的模仿我也听了不止一次了,每次都刀郎那个~···在长途汽车上看报纸说,山寨春晚惨败,所以我也不去看了~···

09年,我打算先学学做饭~···

真的的确确实要放假了

2009-01-21 21:56

连续上了两个星期的班后,明天就要放假了,而且是在中午吃过团年饭后。也就是说明天早上我还是要八点一刻起床然后去上班,然后等到十一点三刻吃完饭后才放假~···

其实,我觉得明天上午的班上不上都没有多少意义的,不上我们还可以睡个懒觉,补充体力,然后中午吃个饱饭。说句不是人话的话,我对这个假期不是很期待~放假有点无聊~···初步打算回去和家人亲戚吃几顿饭,喝几杯酒,然后初二三杀到珠海同学那玩两天,然后初四五再回来宅两天,然后上班。

我已经连续五年没在老家过年了,年的气氛一年不如一年,春节假还不如五一十一那般让我充满期待,让我销魂~···

好,祝大家新年快乐,万事如意,牛年吉祥!

Google NoteBook停止开发

2009-01-17 10:44

昨晚TZ给我说GN可能会关闭,让我做好备份,我一听根本不相信,但是还是用GN自带的备份功能备份到了Google Docs。刚才看GR,果然,这不是传闻~···

At Google, we’re constantly working to innovate and improve our products so people can easily find and manage information. At times though, we have to decide where to focus our efforts and which technologies we expect will yield the most benefit to users in the long run.

Starting next week, we plan to stop active development on Google Notebook. This means we’ll no longer be adding features or offer Notebook for new users. But don’t fret, we’ll continue to maintain service for those of you who’ve already signed up. As part of this plan, however, we will no longer support the Notebook Extension, but as always users who have already signed up will continue to have access to their data via the web interface at http://www.google.com/notebook.

以上文字来自Official Google NoteBook Blog,官方的blog说的很清楚了,google从下个星期开始停止Google NoteBook的新功能开发,当然包括支持扩展的开发。真的很遗憾~···我一直使用Google NoteBook的Firefox扩展来记录平时的不足以撰文的一些小知识,你要知道在那以前我一直用win自带的记事本,有多么难用我就不多说了。Google NoteBook虽停止新功能开发,但原GN用户依然可以正常使用服务,只是再也无法保证现在的GN扩展能否在以后的FF中版本中继续可用~···同时停止新用户注册。

官方建议使用SearchWiki,Google Docs,Tasks in Gmail,Google Bookmarks来替代Google NoteBook,可是对于GN方便的信息录入(借助于Firefox扩展),功能强大的分类、Tag,以及备份功能,当然还有一个强大的划词记录功能(我极少用),就我个人而言,GN的地位是他们还无法替代的~···事已至此,我只希望GN的扩展在FF3.1中还能用~···

最后留个图吧,可能以后就再也看不到了~···

jQuery1.3:Live Events

2009-01-16 14:49

jQuery 1.3中新增了两个“实时”事件处理方法——live,die,用于绑定和删除事件处理函数。这两个方法与之前的bind和unbind存在明显的区别。

live( type, fn )

Added in jQuery 1.3: Binds a handler to an event (like click) for all current – and future – matched element. Can also bind custom events.

bind( type, [data], fn )

Binds a handler to one or more events (like click) for each matched element. Can also bind custom events.

bind只能对当前的匹配对象绑定事件处理函数,而live不但能够对当前的匹配对象绑定事件处理函数,还能够对将来的匹配对象绑定事件处理函数。

例如:

$("button").bind("click",function(){
  $(this).after("<button>click me</button>");
 }
);

使用bind无法对后面创建的对象进行“click”事件处理函数的绑定。

而使用live则完全可以对将来的匹配对象进行事件处理函数的绑定:

$("div").live("click",function(){
  $(this).after("<div>div:click me</div>");
 }
)

查看Demo

附:jQuery1.3中文API