前言 如果·条单竖线(XY)分隔了两个选项,则它们中之一必须出现。双坚线(X ‖Y)意味着X或Y,或者两者都出现,但它们可以按任何顺序出现。中括号 […)于分组。分组优先于双竖线,而双竖线又优先于单竖线。这样,Vw|X lYZ”就等同于“[VW][XtYZ”。 每个文字或括号必须紧龈以下修饰符中的个 星号(*)表示前面的值或者分牡被重复零次或多次。这样, bucket*表示 文宁“ bucket”可以使用任意次,包括零次。对于被使用的次数上限没有明 确的规定 加号(+)表小前面的值或者分组被重复一次或多次。这样,mop+就表示文 字“mop”至少必须使用一次,也隐含可以使用多次。 问号(?)表示前面的值或者分组是可选的。例如,[ pine tree?表示文字 pine tree”可以不使用(也可以使用,但它们必须按正确的顺序出现)。 大括号中的对数字(MN})表示前面的值或分组重复至少M次,最多N 次。例如,ha{1,3表示可以有一个,两个或者÷个文字“ha”出现。 下面是些例子 give I me I liberty 至少必须使用-者之一,而它们可以按任何次序出现例如,give1 iberty, lve me, liberty me give和 give me1 iberty都是有效的。 I am 1 the I walrus 文字I或者am可以使用,使用哪一个是可选的。而且,the或者 walrus, 或者它们一起都可以跟在后面。这样,可以组合成 i the wa1rus,am walras the, am the, I walrus, walrus the等等 koo+ka-choo 一个或者多个koo的后面必须跟一个ka-choo。当然, koo koo ka-choo, koo kookoo ka-choo和kka-choo都是合法的。koo数量可以是无限 的,但在实现时总是有限的
前言 I really( 1, 4 *[love hatel[ Microsoft Netscapel 这是网贞设计者发表意见的通用表达器。可以翻译成I1 ove Netscape,I rea11y1 ove Microsoft,以及相似的一些句子。可以使用零到四个 rea11y。但必须在1ove和hate中选择共→,在本例中选择了love [I Alpha II Baker Cray], J(2, 3) and Delphi 这是个很长很复杂的表达式。可能的结果是A1pha,Cray, and Delphi。 另一个可以是 Alpha Baker, Cray alpha, Baker Cray Alpha,and Delphi。逗号因其位置的特殊而放在中括号内。 建议与评论 本书的内容都经过测试,尽管我们做了最大的努力,但错误和疏忽仍然是在所难 免的。如果你发现有什么错误,或者是对将来的版本有什么建议,请通过下面的 地址告诉我们 美国 O'Reilly Associates, Inc. 101 Morris Street Sebastopol, CA 95472 中国 100080北京市海淀区知春路49号希格玛公寓B座809室 奥莱理软件(北京)有限公司 询问技术问题或对本书的评论,请发电子邮件到 info mail oreilly. com.cn 可以访问本书的网站,这里有书中的实例,勘误表和对将来版本的计划: http://www.oreilly.com/catalog/css/ 最后,你可以在WWW上找到我们」
前言 http:/www.oreilly.com http://www.oreilly.com.cn 致谢 写这本书是出于一个日标:就是使CSS易学、易懂、易于使用。当然,我们为此 做了很多的工作试图将复杂的算法简要地翻译成易理解的语言并不像听起来那 么容易。 在编写本书的过程中,我发现自己好像是在CSS中不引人注意的角落里独自爬 行,创建测试程序,思冥想所有的向题,而且还要兼顾网页浏览器的一些限制 在这期间,我遇到了很多热心的人,我应该感谢他们 当然,首先是 Opera Software的 Hakon wium lie和W3C的 Bert bos,出于他们 努力创建了CSs,而月同答了我关于WWW样式邮件列表的很多闻题,甚至是 些很愚蠢的问题。我同样要感谢W3C的 Chris lilley,他鼓劢我将冈页变得更加 样式化。他对我先前的努力所给于的赞扬,对于我来说真是-副强心剂,而且也 正是他使我加人W3C的CSS&FP工作组成为可能。 Tim OReilly给了我向专业出版物进的机会,为此我感激不尽。 O'Reilly的编 辑, Richard Koman,在我写作的过程中非常耐心,或许我该送去史多的稿件以 表示我对他的感激。 Tara Mcgoldrick,同样在 O'Reilly工作,他在图形整理、语 言沟通方面给了我许多帮助,使我的生活变得更容易。 Songline工作室的Dae Dougherty给了我最初在专业写作方面的突破,而且 Chuck Toporek(现在在 OReilly工作}是我的第一个长期在《 Weh review》的编辑,他认真负责地为我 安排所有文章的提交H程。我的朋友、同事 Peter Murray,非常大方地献出他的 宝贯时间及精力帮助我创作其中的一个案例研究,以及 Ron ryan,他是我所知 道的最棒的管理人员,基于此他获得了·颗金星和很多好评。 在过去的几年,来自Usenet组comp.infosystems.www.authoring.stylesheets的一 群热心人既冋答∫我许多的问题又提供了反馈信息,纷了我叵大的帮助。在这个 组!. Todd Fahrner, Alan Flavell, Anthony Boyd和 Jan roland eriksson为我提 供了许多有用的线索。特别值得一提的是, Sue sims勤勤恳恳地帮助(有时是侏
6 前言 护)她从未遇见过的人—那就是我。 Ian Hickson和 David baro作为CSS方 面的々家,奉献出了他们宝贵的精力以解释规范,寻找浏览器的bug和传播CSS 带来的好处,同样荽感谢他们。他们的评论及洞察力给本书的写作带来∫极大的 帮助。 当然,衷心的感谢要献给CSS的勇士们: Todd fahrner, Liam Quin, David baron lan Hickson, Sue Sims, Jan Roland eriksson, John AlsoppFW Braden Mc Daniel 是的,许多名字都有重复。毕竟,这只是一个小小的团体,但我还能有什么可说 的呢?再…次感谢他们的大力支持。 请注意,他们中不应该有任何人会因本书中的错误而受到责备。桕反,由于他们 为我纠正了许多的错误而应受到我的赞许。 当然,为 Tim Berners-Lee发明了WWW而感谢他,对我来说是合适的。我虽不 认识他,但我觉得凡是和万维网相关的书籍的作者都有必要感谢Tm的巨大贡 献。我认为这或许可以成为一项国际上的惯例;不妨就叫它 Berners convention。 最后,我个人还要致谢: Michelle,他是我患难与共的朋友; Randy总是很乐意 充当我的老师和密友; Steve在大学及以后的几年里给了我很多的帮助;Dave在 这些年里给我带来了欢笑,特别是当我最需要它的时候,在我头脑发热时,又给 了我许多让我清醒的言语;还有Tina,在我想放弃的时候帮助我站了起来。 同时还要感谢我的妻子, Kathryn,她给了我无尽的支持,特别在紧急关头,她对 我和我的能力的信任和肯定;还有我的父母,Art和 Carol,姐姐, Julie,他们总 是一如既往地给我支持。 再次感谢他们。 EricA. m 2000年2月23H
第一章 HTML与cSS 从很多方面来说,层叠样式表( Cascading Style Sheets,cSs)规范代表了万维 网历史上一个独特的发展阶段。从最大限度地使结构文档样式化的根本能力上来 说,CSS算是前进了一步,也算是后退了一步一但这是很好的一步后退,而 且是必需的一步。要想知道其原因,首先有必要理解网络为何需要CSS这样的东 西,以及CSS是怎样使网站更适合于网页制作者和网上冲浪者的。 网络的由盛到衰 追溯到刚络发展的早期(1990-1993),HTML还是·种很贫乏的微型语言。它 儿乎全由结构化元素组成,这些元素对于描述段落、超链接、列表及标题非常有 用。但像表格、框架或者是我们认为在创建网贸时很有必要的一些复杂的标记却 没有包含在内,甚至连边儿都未沾上。通常认为,HTML是一种结构化标记语言 用于揹述文档的不同部分。至于这些部分应该怎样去显示,HTML却很少去关注 所以这种语言并不关心文档的外观,它仅仅是一种纯粹的小的标记系统。 然后 Mosaic出现了。 突然,对于几乎所有网超过十分钟的人来说,万维网的力量是显而易见的。从 个文档跳到另一个文档,只需让鼠标指向一个特殊颜色的文本或者是图像,然