---《网猴》版权所有
用HTML制作网页就象是用画笔绘制一幅图画。只有那些对网页制作痴迷而执着的人才可能精确地实现预定的结果,这并不是正确的工具和灵活性就可以实现的。
任何使用过HTML一个多星期的人都知道HTML是一种非常好的网页制作工具。所以有时候我们不得不制作体积相当大的GIF图象以获得想要的字体和布局。同样,有时候也不得不使用各种表格标签和隐藏的空格GIF图象以使页面的布局能达到预想的目的。
的确有些荒唐。我们的编码实在是太复杂了,GIF用量越来越多,而我们的页面变得比英吉利海峡还要宽,互联网有限的带宽怎么可能通过这么宽的信息呢?这种设计并不是网页设计的最佳形式。
但是,1996年底的时候悄悄诞生了一种叫做样式表(stylesheets)的技术。全称应该是串接样式表(Cascading Stylesheets-简称CSS)这位HTML的表弟向世人保证:
将对布局、字体、颜色、背景和其它文图效果实现更加精确的控制。
* 只通过修改一个文件就改变页数不定的网页的外观和格式。
* 在所有浏览器和平台之间的兼容性。
* 更少的编码、更少的页数和更快的下载速度。
除了还不能全面支持我们常用的大多数浏器之外,CSS在实现其它承诺方面作得相当出色。CSS在改变我们制作样式表的方法。它为大部分的网页创新奠定了基石。
之后的5天,我们将漫游样式表的世界。你将学到样式表的基本知识并将其应用于你的网页中。你还将学到如何处理字体、图文、色彩、背景及定位等的详细技巧。
今天,我们先浏览一下样式表的基本内容。第1个问题;样式表能为我们做什么?
那么样式表有什么特别之处呢?简而言之,它能帮你做以下事情:
* 你可以将格式和结构分离。
* 你可以以前所未有的能力控制页面布局。
* 你可以制作体积更小下载更快的网页。
* 你可以将许多网页同时更新,比以前快更容易。
* 浏览器将成为你更友好的界面
你可以将格式和结构分离。
HTML从来没打算控制网页的格式或外观。这种语言定义了网页的结构和个要素的功能,而让浏览器自己决定应该让各要素以何种模样显示。
但是网页设计者要求的更多。所以当Netscape推出新的可以控制网页外观的HTML标签时,网页设计者无不欢呼雀跃。我们可以用<FONT FACE>、 <I>包在<P>外边控制文章主体的外观等等。然后我们将所有东西都放入表格,用隐式GIF空格产生一个20象素的边距。一切都变得乱七八糟。编码变得越来越臃肿不堪,要想将什么内容迅速加到网页中变得越来越难。
串接样式表通过将定义结构的部分和定义格式的部分分离使我们能够对页面的布局施加更多的控制。HTML仍可以保持简单明了的初衷。CSS代码独立出来从另一角度控制页面外观。
你可以以前所未有的能力控制页面的布局。
<FONT SIZE>能使我们调整字号,表格标签帮助我们生成边距,这都没错。但是,我们对HTML总体上的控制却很有限。我们不可能精确地生成80象素的高度,不可能控制行间距或字间距,我们不能在屏幕上精确定位图象的位置。
但是现在,样式表使这一切都成为可能。而即将推出的新的CSS功能更令人兴奋。以后4天内,你将会明白我所说的意味着什么。
你可以制作出体积更小下载更快的网页
还有更好的消息:样式表只是简单的文本,就象HTML那样。它不需要图象,不需要执行程序,不需要插件,不需要流式。它就象HTML指令那样快。
有了CSS之后,以前必须求助于GIF的事情现在通过CSS就可以实现。还有,正如我先前提到的,使用串接样式表可以减少表格标签及其它加大HTML体积的代码,减少图象用量从而减少文件尺寸。
你可以更快更容易地维护及更新大量的网页。
没有样式表时,如果我想更新整个站点中所有主体文本的字体,我必须一页一页地修改每张网页。即便站点用数据库提供服务,我仍然需要更新所有的模板,而且更新每一模板中每一个实例实例的<FONT FACE>。
样式表的主旨就是将格式和结构分离。利于样式表,我可以将站点上所有的网页都指向单一的一个CSS文件,我只要修改CSS文件中某一行,那么整个站点都会随之发生变动。
浏览器将成为你更友好的界面。
不象其它的的网络技术,样式表的代码有很好的兼容性,也就是说,如果用户丢失了某个插件时不会发生中断,或者使用老版本的浏览器时代码不会出现杂乱无章的情况。
只要是可以识别串接样式表的浏览器就可以应用它。
怎么样,样式表的确是一个很不错的注意吧?
那么,现在我们就开始制作一份样式表。
现在我们就开始制作样式表。
打开你最喜欢的HTML编辑器生成基本的网页:
<HTML>
<HEAD>
<TITLE>My First Stylesheet</TITLE>
</HEAD>
<BODY>
<H1>Stylesheets: The Tool of the Web Design Gods</H1>
<P>Amaze your friends! Squash your enemies!</P>
</BODY>
</HTML>
很好。现在,让我们给它加一些样式表。只需在最初的<HTML>和 <BODY>标签之间插入以下代码:
<STYLE TYPE="text/css">
<!--
H1 { color: green; font-size: 37px; font-family: impact }
P { text-indent: 1cm; background: yellow; font-family: courier }
-->
</STYLE>
从浏览器中打开页面,你将会看到:
Stylesheets: The Tool of the Web
Design Gods
Amaze your friends! Squash your enemies!
做得很好!你已经制作出了你的第1份样式表支持的网页。
(如果“amaze your friends!”一行的背景不是黄色,则说明你需要升级你的浏览器,否则你将无法学完整个教程。建议你安装Netscape Communicator或者Internet Explorer 4)
一些术语
让我们学习一下这些新的编码:
串接样式表的核心是规则。最简单的规则就象这样:
H1 { color: green }
整个规则告诉浏览器将所有<H1></H1>包围的文字以绿色显示。
每一条规则包含一个选择及说明。在上述例子中,H1就是选择,它是一个附带样式功能的HTML标签。说明用于定义实际的样式,包括两部分:属性(本例中即color)和参数(green)。
任何HTML标签都可用作标签。所以你可以将样式表的信息附加到任何要素。从通常 的<P>到<CODE>及<TABLE>内容。你甚至可以通过将样式表用于<IMG>将串接样式表的属性用于图象。
从我们的第1个样式表实例中可以发现,你可以归类样式表的规则。我们将3种不同的说明都用于<P>。
与之类似,你也可以归类选择:
H1, P, BLOCKQUOTE
{ font-family: arial }
这项规则设定所以位于<H1>、<P>和<BLACKQUOTE>的标签将用Arial字体显示。
继承性
样式表的规则可从母体延续到子体。下面是一个例子:
B { color: blue }
这项规则告诉浏览器将所有<B>之内的文字用蓝色显示。但是在下列情况下,浏览器该如何处理呢?
<B>All my Web pages will use cascading stylesheets within <I>four</I> weeks.</B>
对于<I>标签并没有设定样式,但因为<I>位于<B>之中,所以它将继承母体<B>设定的样式,也以蓝色显示。
All my Web pages will use cascading stylesheets within four weeks.
现在我们已经明白了串接样式表的规则如何运作,还看到将样式表加入网页的一种方法但还有其它方法,让我们继续学习。