CSS是一种Web标准。所以,我想先简单介绍一点与Web标准有关的背景,然后再向读者推荐这本书。
现代Web开发,随着CSS和JavaScript的兴盛很快达到了高潮。而且,明确地将Web前端(客户端或者说浏览器)开发划分为结构层(XHTML)、行为层(JavaScript)和表现层(CSS),也是近两三年之内的事。里程碑式的事件就是2003年5月New Riders出版社出版了Jeffrey Zeldman的那本《Designing With Web Standards》。国内在2004年5月引进出版了这本书的中文版《网站重构:应用Web标准进行设计》(电子工业出版社。傅捷、王宗义、祝军译)。自此以后,无论是国外还是国内,“Web标准”逐渐成为Web开发领域中的热门关键词。
Jeffrey Zeldman于1998年创立了Web标准组织(Web standards Project)(中文简介页面),该组织在说服浏览器开发商(主要是以前的网景和微软公司)结束长达近十年的浏览器战争,推动基于标准开发浏览器方面作出了卓越的贡献。在Web开发中,当提到跨平台、兼容性时,通常都是指以下几款浏览器:
- Internet Explorer
- Firefox
- Opera
- Safari
基于Web标准开发可不是指基于浏览器开发,更不是基于IE或某一款浏览器开发。Web标准只提供了Web开发相关技术的接口(API)和规范,比如由W3C(Word Wide Web Consortium,万维网联盟)制定并颁布的XTHML、DOM和CSS规范,由ECMA(European Computer Manufacturers Association,欧洲计算机制造商协会)制定并颁布的ECMA 262(JavaScript)规范,并确保这些规范能够很好地协同。理想化的基于标准的Web开发,应该是一方面浏览器开发商全部实现了标准规定的特性,另一方面是开发者采用标准规定的手段开发网站和Web应用程序。举个例子更好理解。以计算机主板为例,比如英特尔提出ATX结构的主板标准后,支持该标准的主板厂商都必须按照统一的电气性能、物理结构和插槽规范进行设计生产。而生产主板上各种板载配件的厂商,如生产CPU、内存、声卡、显卡、硬盘等等配件的厂商,也必须按照统一的电气性能、物理结构和插槽规范进行设计生产。这样,支持ATX标准的主板和支持同一标准的内存才能兼容。而且,标准化也节省了大量的重复设计和多重规范所造成的浪费,极大地提高了生产效率,降低了生产成本,最终才使我们自己动手DIY电脑成为可能。
然而,现实的世界并不是理想的世界。由于在Web标准出现之前,浏览器已经出现了,而且展开了旷日持久的浏览器大战。在这场没有硝烟的战争中,浏览器厂商(主要是网景和微软)纷纷提出自己的规范和模型,试图将自己的“企业标准”通过市场占有率提升为事实上的行业标准、国际标准,从而达到垄断Web开发产业的目的(这也是Windows 95免费捆绑IE1的原因)。由于在浏览器战争中微软的IE以压倒性的优势胜出,所以,早期的Web开发者们多数都是基于市场占有率最高的IE进行Web开发。只要在IE中能够正常浏览,那就没问题了——因为当时的用户绝大多数都在使用IE上网。
短短几年间,随着命运多舛的Firefox(这款浏览器曾因商标权冲突几易其名,Phoneix、Firebird都是它的曾用名)和表现不俗的Opera、Safari等支持Web标准的浏览器受到越来越多上网用户的青睐,加上各种推动Web标准的人士和组织、机构的鼓与呼,今天,以Firefox为代表的标准浏览器阵营已经与IE形成了分庭抗礼的局面。而且,据权威机构调查,在高知识人群中Firefox的用户已经超过了IE。因此,今天的Web开发者,必须要面对跨浏览器开发的现实。而要进行跨浏览器开发,最有效率的方式就是面向Web标准开
发。好消息是,市场形势的逆转,迫使IE在支持Web标准的道路上不得不迈出实质性的步伐,特别是在对CSS标准的支持方面,2006年10月份发布的IE7与以前的版本相比已经有了质的飞跃。比如实现了正确的盒模型、支持非a元素的鼠标悬停事件、支持相邻选择符、支持固定定位,以及修正大量的不规范行为等。并且,目前正在开发中的IE8也在2007年12月份宣布通过了Web标准组织发布的Acid2测试(主要用于测试浏览器是否支持CSS 2.1其他标准特性的测试程序,链接地址)。
开弓没有回头箭。为了保住市场份额,IE在支持标准方面所作努力的结果,具体到CSS开发领域,就是可以让开发者只编写一个CSS样式表,就能使页面在所有支持标准的浏览器中拥有一致的外观。门槛降低了,效率提高了,开发者省心了,用户也满意了。
众所周知,CSS是一门经过W3C标准化的语言。当前受到普遍支持的标准版本是CSS 2.1。在基于标准的Web开发中,CSS负责控制表现层。正如本书作者Eric所比喻的:如果HTML是人的身体(想像一下<body>标签),那么CSS就是穿在人身上的衣服。穿衣打扮能够展示人的形象,体现人的品位,同样,通过为网页应用样式也能塑造网站的形象,提升网站的品位。如果想学习Web开发,哪怕就是想做一个仅包含几个页面的微型网站,那么学习CSS都是明智的选择。
同样是在两三年之前,国内市场上有关CSS的书可以说廖若晨星。然而,自2006年下半年起,随着Web标准意识的觉醒,各种CSS的本版和外版书纷纷在国内市场上抢滩登陆,占据了Web开发设计书架上显眼的位置。其中就包括本书作者Eric A.Meyer的《CSS权威指南(第三版)》(中国电力出版社,尹志忠、侯妍译-2007年10月)。据悉,Eric的另外两本书《Eric Meyer on CSS: Mastering the Language of Web Design》(New Riders出版社)和《More Eric Meyer on CSS》(New Riders出版社)的中文版也将由国内出版社在今年推出。当然,读者现在能够看到的外版CSS专著远远不止这些,其中也不乏优秀的作品,限于篇幅,在此就不罗列清单了。显然,您可能会问,在这么多CSS书中,这本书有什么不同?作为译者,我想以第一读者的身份试着来回答这个问题,以便帮您决定是拿着它到款台付款,还是把它放回到书架上。
首先,这是一本针对初、中级读者,特别是针对入门级读者的书。书中涵盖的内容没有像作者的“权威指南”那样包罗万象,但是包含了经过精心筛选的学习CSS必须要了解和掌握的所有内容。包括选择符与层叠、基本的CSS布局、前景和背景属性、页面排版、外边距、内边距和边框的实用技术、样式化表格、设计打印样式表等等。而且,全面介绍了CSS样式表的类型、如何有效地组合和管理样式表、CSS中样式规则的冲突诊断和解决机制等内容,并在各个章节中穿插了很多实用性极强的提示和辅助信息。可以说,这些内容既简单又重要,是理解和设计符合标准的CSS的必备基础知识。
其次,这是一本注重实践的书。这本书秉承了lynda.com HOT(Hands-on Training,实际操作培训)系列图书的风格,以实践见长。全书共包含67个练习,加上配套光盘中提供的完整的练习文件,致力于让读者在实践中学习和掌握CSS的原理和技巧。事实上,学习任何一门语言,关键都是要经过Get your hands dirty(亲自动手)的过程,书中的文字和插图永远只是表象,真正上机实践才是掌握一门技术的不二门径。只通过看书就成为CSS高手的例子,并不是鲜见,而是根本没有。这种面向练习、面向实战的CSS书,就译者目前对CSS技术书的“阅历”来说,应该还是绝无仅有的。
最后,这是一本高起点的CSS书。学习一门新知识、新技术,起点的重要性不言而喻。好的起点,意味着一个好的开始,而好的开始则是成功的一半。相对于Eric其他几本CSS专著来说,这是唯一一本入门级的CSS书,也是最新出版的一本书,可以说是作者厚积薄发、含英咀华的结晶。Eric在CSS业内堪称大师级人物,如果读者在迈出学习CSS的第一步时就能得到大师的启蒙,相信这样一个开局的意义是不难想像的。我们常说,要站在巨人的肩膀上,现在“巨人的肩膀”就在你的脚下。如果是我,我会毫不犹豫地站上去,体验一下“会当凌绝顶,一览众山小”的大气磅礴。说实话,真的很希望当初自己在学习CSS时能够遇到这么好的一本书。
当然,作为大师著作的译者,我在保持大师语言的幽默感和精准性方面也尽了最大的努力,尽我所能地为读者奉献一堂原汁原味的大师启蒙课。不过,囿于个人水平和能力,翻译中的错误和不当之处在所难免。如果读者发现了书中的问题,请务必本着“治病救人”的白求恩精神,在我的个人网站http://www.cn-cuckoo.com中给予指出,或者将电子邮件发送到lsf.email[at]yahoo.com.cn。最后也是最重要的,我要感谢机械工业出版社陈冀康编辑对我翻译本书提供的良好支持,感谢本书其他审稿老师对本书所作的修改和审订,这对本书的质量提供了切实的保证。
为之漫笔(李松峰),本博客专注于Web前后端技术、移动平台开发技术、交互设计和技术翻译。声明一下,因为时常需要外出审稿,而且基本不带笔记本,所以有时可能会迟一点回复大家的留言。
meyer大叔的著作么,不能不看!只是,这本啥时候上架呢?
这本书是2008年1月中旬交的稿,按照《Ajax构建工具箱指南》的进度估计,应该是2008年4月份。
图片失效?
因为直接引用的是Amazon或china-pub上的图片,所以如果你访问这两个网站有问题,可能会看不到图片
支持一下。
我来过了,注你一路走好。
我来过了,祝你一路走好。
我会常来看看你的成果的。
好,经常来看看!