内容提要    现在,对于您来说,构建极其漂亮的Web站点的本领将唾手可得。本书详细而有条理地介绍了如何结合使用层叠样式表(CSS)与HTML、XHTML、XML,创建丰富而有强烈视觉冲击力的Web设计。本书的内容是以浏览器为中心展开的,所以您可以轻松地开发出与IE 6、IE 7、Firefox 2、Opera 9和Safari 2兼容的站点。 通过提供突出显示的示例代码和展现内容丰富的Web页面,本书向您展示了CSS的工作方式和原理。从基于CSS的Web设计原理及操作文档显示的属性,到各种高级的CSS概念、技巧(如多栏布局和垂直居中定位元素),从解决IE中诸多的常见Bug,到实用性极强的案例研究……,最终使您掌握将自己的站点提升到更高层次的必备技能。本书主要内容。CSS Level 1、2、2.1和3规范的相关知识。操纵文本和选择字体效果的方式。IE 6和IE 7的Bug及解决方案。如何控制文档布局。使用背景增强Web设计的技巧。4种不同类型的定位方式:静态、相对、绝对和固定。如何改变XML、HTML/XHTML文档中元素的行为
CSS(Cascading Style Sheet,层叠样式表)是用于网站呈现的现代标准。当与结构化标记语言,像HTML、XHTML或XML(不限于这些)结合使用时,CSS提供给Internet浏览器的信息使它们能够表现Web文档的所有可视效果。CSS应用于边框、段落、标题和图像间的间距、字体外观或颜色的控制、背景颜色及图像、像下划线和删除线这样的文字效果、分层、定位,以及许多其他的呈现效果。CSS控制Web页面设计的呈现外观,而HTML、XHTML或XML控制Web页面的结构,就是说决定哪些文字作为标题,哪些作为段落,哪些作为超链接列表等。CSS提供了强大而精确的视觉呈现;而HTML这样的标记语言则提供语义和结构。 本书涵盖了所有结合使用CSS和HTML、XHTML或XML,从而创造出丰富、美观设计的全部内容。从全书来看,主要关注于结合使用CSS与XHTML,因为XHTML是被众多Internet标准团体所认可的HTML的替代者和网站设计的前景所在。CSS和XHTML的结合使Web文档可以由更少的代码表示,于是文件变得更小,维护变得更容易。CSS也使得Web文档的表现更为集中,整个网站的外观可以集中写在一个或几个简单的文档中,这使更新网站变得轻而易举。只要对一个文档进行一些简单的编辑工作,整个网站的外观就可能变得完全不同。 当使用像CSS和XHTML这样的现代标准时,与传统的纯HTML页面相比可以大幅减少建立和维护一个网站的成本,还可以降低所需的物理带宽和硬盘空间,对任何网站来说这都是一个唾手可得的长期利益。 在这本书里,还将论述如何用CSS指定XML文档的样式——XML是一种具有多种用途的高级标记语言。在将来的XHTML文档应用中,XML将扮演越来越重要的角色。 0.1 第2版的新变化 本书几乎是对第一版内容的全面修订。我聆听了读者关于第一版的意见,并通过这些反馈编写了现在市面上所能找到的对CSS最全面的介绍。在本书里,可以看到CSS被分解为简单的例子,这些例子每次只关注一个概念。这使读者能更好地理解某些特性的工作方式和原理,而且由于没有无关的代码,读者可以更好地观察使其能够工作的细节部分。虽然这些例子可能并不漂亮,但它们都是极有价值的学习工具,可以帮助读者掌握层叠样式表。 为了增强学习体验,大部分例子的代码表现为语法着色形式,这是本书的特色1。语法着色通常是在优秀的开发软件中所能看到的,像Zend Studio(用于开发PHP),或Microsoft的Visual Studio(用于开发ASP、C#等),以及其他专业程序员每天使用的软件。这些软件使用语法着色使编程更加简单和直观,也给教学提供了极大好处。它使读者看到在源代码里有哪些细节上的不同,因为不同的细节都使用不同的颜色标明它的用途。它帮助读者更容易地分辨代码的构建块。如果读者使用类似的开发软件来编写CSS和HTML文档的话,将发现错误会减少,因为语句着色有助于读者写出没有bug的代码。 在许多例子的源代码中还加了注释,以突出重要的、不能忽略的信息,并且用可视化的方式指出上下文中论述的概念。 这一版里还用了彩色的浏览器截图,这在Wrox的书里还是第一次。彩色浏览器截图使读者可以更轻松地将自己的结果与书中的相比较。 本书还试图从浏览器中立的角度介绍CSS开发,提供了开始一个良好的、专业的、跨浏览器、跨平台的网站设计所需的所有信息。由于针对IE 6、IE 7、Firefox 2、Opera 9和Safari 2,因此就可以囊括99%的上网浏览人群。 读者还可以看到对IE 6和IE 7浏览器的bug和替代方案的全面介绍。对于CSS开发人员来说,如果对IE 6的怪癖和缺点没有深刻了解的话,让CSS在IE 6里工作将十分令人头疼。书中加入了许多hack和不标准的解决方案,读者可能需要这些来开发在IE 6中兼容的CSS。IE 7在支持CSS方面做了许多重大改进,不过,虽然问题比它的前一版本少了很多,但仍然需要一些方法使Web页面在Microsoft的最新浏览器中生效。书中还介绍了读者需要的替代解决方案,使得Web页面能够在IE 7中像在其他流行的浏览器中一样工作。另外,读者还可以在附录B中找到IE 7支持的新CSS特性。 除了对Internet Explorer作了更多介绍之外,还大大增加了介绍Mac OS X下浏览器、Safari、Firefox和Opera的篇幅。读者可以看到Mac下的浏览器与它们的Windows同胞有相同的表现。 由于新内容太多,甚至把最后一章放在了网上,在Wrox出版社的网站上,提供免费下载。在这章里我讨论了IE 6的补充解决方案,并且在一个真实的Web页面里集中了读者在本书中学到的所有知识。 读者可以访问本书的Web页面:/go/beginning_css2e。 接下来的部分将介绍本书的主要内容、适合的读者对象、本书的结构、所需的工具、如何提出问题和疑问,以及本书的写作约定。 0.2 本书读者对象 本书主要适合于那些想要学习如何使用层叠样式表呈现Web文档的人。因为层叠样式表用于控制Web文档的外观,那些有艺术、绘画设计背景,或为出版物排版的读者使用起CSS来将得心应手。不过无论读者的背景如何,CSS始终都是一种简单而强大的语言,任何人都可以理解并使用它。 为了使本书发挥出最大功效,读者需要一些标记语言的经验,例如HTML或XHTML。如果读者是刚刚接触网站设计和开发,那么推荐由Jon Duckett的Beginning Web Programming with HTML, XHTML, and CSS这本书开始学习Web编程。Jon Duckett的书为新手全面介绍了网站开发和设计,但本书只关注CSS在网站设计中的特殊地位。 在本书里,提供了所有读者需要的素材,使用它们读者可以轻松地从零开始编写CSS。 0.3 本书主要内容 本书涵盖了CSS 1、CSS 2、CSS 2.1和CSS 3规范。这些规范是由一个独立的非盈利性Internet标准组织——万维网联盟(World Wide Web Consortium,W3C)制定的,该组织设计并制定Internet文档的标准。本书大部分使用了CSS 2.1规范中定义的内容。 本书将指导读者如何编写在大部分流行的Web浏览器上兼容的CSS。包括以下这些流行的浏览器: ● Windows平台的Microsoft Internet Explorer 6 ● Windows XP Service Pack2、Windows Server 2003、Windows XP Professional 64 bit和Windows Vista平台的Windows Internet Explorer 7 ● Mac OS X 10.4(Tiger)平台的Safari 2 ● Mac OS X、Windows和Linux平台的Mozilla Firefox 2 ● Max OS X、Windows和Linux平台的Opera 9 在编写本书时,上述浏览器占据了99%的Web浏览器市场份额。为了方便起见,本书还包括了完整的CSS特性参考,以及这些特性的浏览器兼容性提示。附录B中也包含了一份CSS参考。 0.4 本书的结构 本书分为三个部分。以下介绍了每个部分和每一章的内容。 第一部分:基础知识 从第1~4章,读者可以学到基于CSS的Web页面设计的基本原则。 ● 第1章,“层叠样式表简介”:本章介绍了CSS是什么、它存在的原因、它的起源、由谁维护,以及它的发展过程。还介绍了各种CSS规范——CSS Level 1、CSS Level 2、CSS Level 2.1和CSS Level 3的基本差别及这些规范如何定义CSS。读者还能学到每种现在最流行的浏览器的有关知识,如何获取它们,以及编写您的第一份支持CSS的文档。还向读者展示了如何在相同的机器上安装IE 6和IE 7以进行测试。 ● 第2章,“基本概念”:这一章介绍了CSS的基础。在看过一个CSS文档的例子之后,本章介绍了CSS规则,以及选择器和声明是如何结合在一起创建规则的。示范了在文档中包含CSS的各种方法。解释了CSS中如何使用关键字创建预定义的行为,以及在CSS中如何使用字符串表示字体名。介绍了CSS支持的各种度量单位。最后,还谈到了指定颜色的不同方式。 ● 第3章,“选择器”:第2章介绍了选择器的概念。本章介绍复杂的选择器,以及如何通过上下文或用户引发的事件对文档的一部分应用样式。 ● 第4章,“层叠和继承”:在本章读者将学到如何覆盖样式,在样式表里优先级如何工作,以及怎样指定一些样式比另一些重要,还有层叠样式表中层叠的含义。读者还能学到当在一份文档中设定了样式,这些样式是如何根据上下文在文档中被继承应用的。 第二部分:属性 从第5~12章,读者将学到用于操纵文档呈现的样式表属性。 ● 第5章,“文本属性”:本章介绍CSS中用于文本操作的各种属性。这些属性产生的效果包括控制单词的字母间距、段落的单词间距、文本对齐、下划线、上划线和删除线。通过使文字全部变成小写、大写或首字母大写,演示了如何控制文本的大小写。 ● 第6章,“字体属性”:在学习了第5章中的CSS文本属性之后,本章介绍用于操作字体表现形式的CSS属性。相应效果包括粗体字、设定字体外观、设定字体大小、设定斜体字,以及学习如何在单一属性里指定所有的CSS字体效果。 ● 第7章,“盒模型”:本章详细说明了CSS设计的基本概念—— 盒模型。读者将看到盒模型在决定布局尺寸方面如何扮演一个重要角色。通过使用margin、border、padding、width和height属性,可以控制文档中的元素占据多少空间,间隔多少,是否带有环绕边框,是否带有滚动条。还将讨论一种叫做外边距折叠的CSS现象,这种现象在上下外边距与Web文档中其他的上下外边距直接接触时发生。 ● 第8章,“CSS浮性:浮动和垂直对齐”:本章讨论了float和clear这两个属性,它们用于控制Web文档的布局流,也常常用于图文混排。还将讨论vertical-align属性,该属性提供类似于上标或下标的效果,以及在表单元格里控制垂直对齐。 ● 第9章,“列表属性”:本章着眼于控制有序和无序列表呈现形式的CSS属性。包括CSS提供的一些选项,用于预定义的列表符号、自定义的列表符号和列表符号的位置。 ● 第10章,“背景属性”:本章介绍了用于控制Web页面背景的CSS属性。包括设定背景颜色或背景图片,以及控制背景位置、背景平铺,还有当滚动Web页面时背景是否在适当位置固定或者静态显示。最后还展示了如何将所有这些单独的效果结合进一个属性里。 ● 第11章,“定位属性”:本章讨论了4种不同的定位类型,即静态、相对、绝对和固定。定位主要用于给文档的不同部分分层。还描述了一些定位的实际应用,例如创建一个多栏布局。 ● 第12章,“表格属性”:本章介绍了给(X)HTML表格应用样式的不同CSS属性。这一章里介绍的属性让读者可以控制单元格之间的间隔、表标题的位置,以及是否显示空单元格。还详细讲述了(X)HTML中用于结构化表数据的可用标记和选项。 第三部分:高级CSS和可选择的媒体 在第13~15章,读者将学到如何使用CSS控制打印文档及另一种文档类型—— XML。 ● 第13章,“打印样式”:本章介绍了使用CSS提供样式表来创建Web文档的打印机可用版本的步骤。 ● 第14章,“XML”:本章展示了如何用CSS给XML内容应用样式。本章只关注于CSS的display属性,以及如何使用该属性改变XML或HTML/XHTML文档中标记的行为。 ● 第15章,“Cursor属性”:本章演示了如何使用CSS改变用户的鼠标指针、如何自定义鼠标指针,以及每种浏览器所支持的指针特性。 ● 第16章,“Dean Edwards的‘IE 7’”:在这一章里讨论了众多针对IE 6的hack和解决方案中的一种。讨论了如何为网站安装HTTP服务器,如何安装和使用Dean Edwards的IE 7 JavaScript,该脚本是一个使IE 6同它的替代者兼容的hack和解决方案的集合。这一章只能在Wrox公司的网站上找到,网址为/ go/beginning_css2e。 ● 附录:附录A包含了每章的练习答案。附录B,“CSS参考”,使读者能够在闲暇时查询CSS特性和浏览器兼容性。附录C,“CSS颜色”,提供了一个CSS中命名颜色的参考。附录D,“浏览器呈现模式”,提供了一个在包含或不包含文档类型声明(Document Type Declaration,在第7章中谈到)时调用的浏览器呈现模式的参考。 0.5 使用本书所需要的工具 要使用本书中的例子,读者需要以下工具: ● 一些用于测试Web页面的Internet浏览器 ● 文本编辑软件 设计网站内容需要针对不止一种类型的用户。您的一些用户可能使用和您不同的操作系统和浏览器。本书关注那些在本书编写时最为流行的浏览器。 第1章非常详细地叙述了如何获得和安装每一种浏览器。本书中的例子需要将Web页面源代码与文本编辑软件结合使用。第1章里同样介绍了在Windows或者Macintosh操作系统上可用的一些文本编辑软件。 0.6 约定 为了帮助读者最大程度地理解书中的内容及了解发生了什么,本书里使用了许多约定。 注: 此处已根据中文版样式作了适当删除。 文字样式: ● 在引入重要的词汇时将加以强调。 ● 像Ctrl+A这样的形式表示键盘敲击。 ● 按以下两种方式表现代码。 · 在代码示例中,将用灰色背景强调新的和重要的代码。 · 对于在当前内容中不那么重要的代码,或以前出现过的代码,将不突出显示。 0.7 源代码 在练习本书中的示例时,读者可以手动输入所有的代码,也可以使用随书附带的源代码。本书中的所有源代码均可在或http://www.tupwk.com.cn/downpage站点下载。登录Web站点后,只需找到本书的标题(可以使用Search功能或标题列表)并单击显示本书详细内容的页面上的Download Code链接即可获取源代码。 由于很多书籍的名称类似,因此通过ISBN查找可能会更容易一些。本书的ISBN号是978-0-470-09697-0。 在下载源代码之后,只需使用最喜欢的解压缩工具对其进行解压缩即可。另一个途径是到Wrox代码下载主页面/dynamic/books/download.aspx,这里有本书及其他所有Wrox书籍的源代码。 0.8 勘误表 我们尽最大努力确保本书在叙述和代码中没有错误。然而,没有人是完美的,错误时有发生。如果读者在本书中发现什么错误,例如拼写错误或编码错误,我们将会非常感谢您能反馈给我们。通过将错误添加到勘误表中,您也许能为其他读者节约数小时的时间,也可以帮助我们提供更高质量的书籍。 请给wkservice@tup.tsinghua.edu.cn发电子邮件,如果您的意见是正确的,我们将在本书的后续版本中采用。 要找到本书的勘误表,可以登录Web站点,然后搜索本书的书名或者使用标题列表。然后,在本书的详细内容页面上,单击Book Errata链接。在这个页面上读者可以查看到所有已提交的、由Wrox的编辑发布的错误信息。也可以在页面找到一个完整的标题列表,这个列表包含了每本书的勘误表链接。 0.9 如果想参与讨论,可以加入P2P论坛,网址是。这些论坛是基于Web站点的系统,其作用是让读者发布与Wrox的书籍和相关技术有关的消息,并与其他读者和技术用户联络。这些论坛提供订阅功能,当读者感兴趣的主题发布时,论坛会通过电子邮件把这些消息发送给读者。Wrox的作家、编辑、其他行业专家及和您一样的读者都会出现在这些论坛上。 在中,读者将找到很多不同的论坛,这些论坛不仅能帮助读者阅读本书,还可以帮助读者开发自己的应用程序。要加入这些论坛,可按如下步骤操作: (1) 登录并单击Register链接。 (2) 阅读用途条款并单击Agree。 (3) 填写加入论坛所必需的信息和可选信息并单击Submit。 (4) 读者将收到一封电子邮件,该邮件告诉读者怎样验证账户并成功加入。 没有加入P2P论坛也可以阅读该论坛上的信息,但是如果希望发布自己的消息,则必须加入该论坛。 加入之后,就可以发布新消息或者回复其他用户发布的消息了。可以在任何时间阅读Web站点上的消息。如果希望某个论坛能将最新的消息通过电子邮件发送给您,则可以单击论坛列表中该论坛名称旁边的Subscribe图标。 要获得如何使用P2P论坛的更多信息,可以阅读P2P FAQ列表中的问题及其答复,这些问题与论坛软件的工作原理及很多与P2P和Wrox相关的常见问题有关。要阅读FAQ,可以单击任意P2P页面上的FAQ链接。