CSS设计指南(第3版)
对网页设计师来说,这是一个激动人心的时刻!互联网已经囊括了几乎所有媒体,有线电视、CD和DVD已经被Hulu、Netflix、Pandora和Spotify等这些按需取用的在线服务取代。
当然,访问这些媒体的设备同样异彩纷呈。有传统的台式电脑、笔记本电脑,还有平板电脑、智能手机,甚至60英寸的大屏幕电视。
而保障所有这些设备和媒体顺畅运作,有一套全新的技术标准:HTML5、CSS3和JavaScript。
五年前,在写作本书第2版的时候,曾经出现过一种死板又复杂的HTML标准——基于XML的XHTML。由于XHTML难以适应千变万化和快速发展的互联网开发需求,苹果、谋智和欧朋联手组建了Web Hypertext Application Technology Working Group(WHATWG,Web超文本应用技术工作组)。这个组织的宗旨,就是让W3C为推广XHTML标准而抛弃的HTML 4起死回生。然后,我们就看到了涅盘重生的HTML5。过去三年间,HTML5迅速取代XHTML,在Web设计与开发领域获得了广泛认同。
HTML5是为今天的多媒体互联网而生的,因此它提供了一整套API,支持视频、音频、图形、地理定位、数据存储等等。HTML5还为结构化文档提供了很多新的元素(section、article、nav,等等)。而在此前,没有什么语义的div外加标识性的类名和ID,曾经顶替过这些新元素的角色。但顶替实非长久之计,它们会限制标记本身的语义和可移植性。
在HTML标准从HTML 4到XHTML,再向HTML5过渡的过程中,CSS3则取得了越来越多浏览器的支持。作为网页美容工具箱,CSS3吸纳了大量的建议。由于规模实在太大,于是就分成了众多模块,分别由不同的团队负责每个模块的制定工作。
经过了长久的等待,我们终于可以使用CSS3的新功能了,比如说渐变、过渡、变换、阴影、圆角,等等。不过,不少使用旧版本浏览器的用户恐怕还是无法体验到这些新的“特效”。对不完全支持CSS3的浏览器,可以使用Modernizr这个JavaScript文件来检测出它们到底支持或不支持哪项功能。对于不支持的功能,可以写一些后备代码(替代代码)或者使用腻子脚本(模拟CSS3功能的JavaScript代码)。细节就不在这儿说了,看本书附录吧。
今天的互联网不仅变得更加“亲民”,而且相对以往,开发人员的生活也轻松不少。就拿现在这本书来说吧,写作和编码花了我几百个小时的时间,无数个白天和黑夜,还有不计其数杯咖啡。但我的感觉就像是参加一个庆祝聚会。因为在示例和代码的背后,本书实际上代表了当今Web设计领域最前沿的成果,而这些成果曾经是很多人翘首企盼的美好未来。曾经的梦想如今已成为现实。因此,要感谢Jeffrey Zeldman、Ian Hicks,还有很多我说不上名字来的人,正是他们的努力和坚持,才让曾经的Web标准化之梦终于成真。这种感觉,就像一个爬山的人,一步一步艰难地向上走,而突然有一天发现自己已经爬到了山顶一样。想想看,这是一个多么大的突破呀:以前,即使要写一个最简单的布局都必须考虑旧版浏览器,为此我得花数页篇幅向读者解释那些“歪招儿”,但现在我既可以省下我的笔墨,也可以不再浪费了宝贵的纸张了;以前,要写出一个阴影或圆角效果来,我得机关算尽地组织复杂的图片和嵌套的DIV,但现在只要一行CSS代码就可以搞定了;以前,辛辛苦苦写好一个页面,在不同浏览器里看起来往往非常不一样,但现在所有新版本浏览器都能完整一致地呈现它了。
所以,这个新版本是面向未来的。我没有像写本书的前两个版本那样,连篇累牍地跟大家讲怎么解决浏览器的不兼容问题,而是尽量聚焦于HTML5、CSS3以及现代浏览器所能实现的新功能。Internet Explorer 9、Firefox、Chrome、Safari,还有Opera(对了,它会自动更新),这些浏览器的行为能够保持一致。而旧版本浏览器(尤其是IE8及更低版本)的用户与日俱减。至于怎么为这些过时的家伙提供服务,大家看附录。本书的主体内容讲的只是今天和未来的CSS。