用HTML制作网页就象是用画笔绘制一幅图 画。只有那些对网页制作痴迷而执着的人 才可能精确地实现预定的结果,这并不是 正确的工具和灵活性就可以实现的。 任何使用过HTML大一个多星期的人都知道 HTML是一种非常好的网页制作工具。所以 有时候我们不得不制作体积相当大的GIF 图象以获得想要的字体和布局。同样,有 时候也不得不使用各种表格标签和隐藏的 空格GIF图象以使页面的布局能达到预想 的目的。 的确有些荒唐。我们的编码实在是太复杂 了,GIF用量越来越多,而我们的页面变 得比英吉利海峡还要宽,互联网有限的带 宽怎么可能通过这么宽的信息呢?这种设 计并不是网页设计的最佳形式。
但是,1996年底的时候悄悄诞生了一种叫做样式表(stylesheets)的技术。全称 应该是串接样式表(CascadingStylesheets-简称CSS)这位HTML的表弟 向世人保证: 将对布局、字体、颜色、背景和其它文图 效果实现更加精确的控制。 . 只通过修改一个文件就改变页数不 计的网页的外观和格式。 在所有浏览器和平台之间的兼容性。 更少的编码、更少的页数和更快的 下载速度。 除了还不能全面支持我们常用的大多数浏览器之外,CSS在实现其它承诺方面作得相当出色。CSS在改变我们制作样式表的方法。它为大部分的网页创新奠定了基石。 之后的5天,我们将漫游样式表的世界。你将学到样式表的基本知识并将其应用于你的网页中。你还将学到如何处理字体、图文、色彩、背景及定位等的详细技巧。 今天,我们先浏览一下样式表的基本内容。第1个问题;样式表能为我们做什么?
那么css样式表有什么特别之处呢?简而言之, 它能帮你做以下事情:
<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>
从浏览器中打开页面,你将会看到:
Amaze your friends! Squash your enemies!
如果你的浏览器不支持CSS,请点击这里观看CSS的 效果。 做得很好!你已经制作出了你的第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>设定 的样式,也以蓝色显示。
植入样式表:
这就是我们在上一页中用的方法,所有 的样式表信息都列于HTML文件的顶部, 同<BODY>分列,例:
<HTML> <STYLE TYPE="text/css"> <!-- H1 { color: green; font-family: impact } P { background: yellow; font-family: courier } --> </STYLE> <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页 面中都执行该规则。如果你想对网页一次 性加入样式表,就可材用该方法。
你可能注意到代码中有两处很奇怪: TYPE="text/css"属性和注释标签。 TYPE="text/css" 设定采用MIME类型,这 样以来,不支持CSS的浏览器可以忽略样 式表。
注释标签(<!-- and -->)更为重要。有些 老的浏览器(如MAC机用的IE 2.0)即使 在设定了TYPE="text/css" 属性时也不能 忽略样式表继续执行下面的命令,而且还 会显示样式表的代码。而使用注释标签则 可以避免发生这种情况。 链接到样式表上
这里是样式表功能发挥得淋漓尽致的地 方。你可以将多个HTML文件都链接到一个 中心样式表文件。这个外部的样式表文件 将设定你所有网页的规则。如果你改变样 式表文件中的额某一细节,所有页面都会 随之改变。如果你维护的站点很大,则这 项功能绝对会有其用武之地。
它的使用方法:产生一个普通的网页,但 不使用<STYLE>规则,而是在<HEAD>内使 用<LINK>标签:
<HTML> <HEAD> <TITLE>My First Stylesheet </TITLE> <LINK REL=stylesheet HREF="mystyles.css" TYPE="text/css"> </HEAD> <BODY> <H1>Stylesheets: The Tool of the Web Design Gods</H1> <P>Amaze your friends! Squash your enemies!</P> </BODY> </HTML>
(使用链接的样式表时,你无须使用注释 标签。)
现在生成一个单另的文本文件,起名mystyles.css (或者其任何你喜欢的名 字)。文件内容如下:
H1 { color: green; font-family: impact } P { background: yellow; font-family: courier }
如同发布HTML文件那样,将这个CSS文件 发布到你的服务器中。在浏览器中观看网 页时,你会发现浏览器将依照链接标签将 所有链接了的HTML网页按照样式表的规则 显示,在HREF属性中你可以选择使用绝对 或相对URL。
输入样式表
输入外部样式表的方法同链接的方法类似。 不同之处在于链接法不能同其它方法结合 使用,但输入法则可以。例:
<HTML> <STYLE TYPE="text/css"> <!-- @import url(company.css); H1 { color: orange; font-family: impact } --> </STYLE> <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>
而其中输入的 company.css文件内容如下:
H1 { color: green; font-family: times } P { background: yellow; font-family: courier }
在本例中,浏览器首先输入 company.css 的规则 ( @import 必须打头), 然后加入 移植的规则从而为这个网页产生规则集合。 请注意,对于H1在外部样式表文件和植入 的样式表中都设定了规则。在两者冲突的 情况下,浏览器应执行哪一项规则呢?植 入的规则此时将占上风。所以文字显示效 果如下:
Amaze your friends! Squash your enemies!
输入样式表的灵活性可以使你输入无数多 个样式表,并可以按照自己的喜好用植入 的样式表凌驾于输入的样式表之上。
但是目前只有IE 4.0支持输入法。
在行内加入样式 最后,你还可以在HTML行中加入样式规则, 如下:
<HTML> <HEAD> <TITLE>My First Stylesheet </TITLE> </HEAD> <BODY> <H1 STYLE="color: orange; font-family: impact">Stylesheets: The Tool of the Web Design Gods</H1> <P STYLE="background: yellow; font-family: courier">Amaze your friends! Squash your enemies!</P> </BODY> </HTML>
在这个例子中,你无须在HTML顶部加入样 式表代码。加入行内的样式表属性将使浏 览器同样执行样式表规则。
该方法不方便之处在于:你必须在每行指 令中都中加入样式规则,否则下一行时浏 览器将转回到文件的缺省设置。
加入行内的样式表相比不如植入、链接及 输入的样式表那样功能强大,但有时候你 会发现它也很有用。
P.first { color: green } P.second { color: purple } P.third { color: gray }
<P CLASS=first>The first paragraph, with a class name of "first."</P> <P CLASS=second>The second paragraph, with a class name of "second."</P> <P CLASS=third>The third paragraph, with a class name of "third."</P>
你可以给类别起任何一种名字,但不要 忘了在样式表规则中类别名称前加一个 句号(即英文中的 .)
你还可以生成不加任何HTML标签的分类:
.first { color: green }
这种方式更加灵活,因为现在我们可以 将CLASS=first用于任何HTML标签,并应 用到网页<BODY>中,而设定的文字将以 绿色显示。 情景选择: 如果你想让所有加重显示的文字都以红 色显示,但条件是只有当这些加显示的 文字出现在通常的主体文字内时。不可 能吗?利用样式表可以实现你最狂野的 梦想。情景选择将使你梦想成真,心想 事成。情景选择要求你设定一个可以执 行选择说明的情景即可。
P B { color: red }
<H1><B>Emma Thompson</B>, Actress </H1> <P>Dramatic actor, inspired comedienne. Is there <B>nothing</B> she can't do?</P>
样式表的规则告诉浏览器只将所有<P>之 内加重显示的文字以红色显示。所以, <P>之外标题的加重文字不会以红色显示, 而<P>之内的文字则是。 注释 即使是用样式表制作出的非常简练的代 码也应该加上注释。利用样式表代码就 可以做到这一点。例:
浏览器将按照上述顺序执行样式表的指 令。 但是还要一个问题。如果同一种类的多 个规则相互冲突怎么办?比如,如果一 项植入样式表规则将<P>以绿色显示,而 另一个规则要求以红色显示? 多亏聪明的样式表标准的发明人,对于这 种冲突也有一个顺序,但很复杂。这里 有一个极其简单的解决顺序:
BODY { color: green } P { color: red }
有一项规则特别说明<P> 中的文字 一红色显示,但它同时也继承了 <BODY>的绿色规定。但是特别说明 了的规则的重要性要大于继承的规 则,所以<P>之内的文字一红色显 示。
如果不存在第1步中所列的特别说明 的规则(比如存在特别说明了的多 项规则),则浏览器转向执行继承 的规则。如果找不到继承的规则, 则浏览器转向执行第3步。
P { color: green } P { color: red }
当无法适用上述规则时,浏览器将 根据规则在代码中显示顺序执行。 在上例中,<P>作为讲座一红色显示, 因为它是最后给出的规则。
注意:正式的串接样式表规定对于串接 顺序有更详细的规定。但由于执行规定Netscape Communicator 和Internet Explorer都不支持,所以本文中不再细 述。 最后一个问题:如果样式表规则同HTML 标签冲突时,如何处理?我们看一下这 个例子:
I { font-family: impact }
<P>I think <I><FONT FACE="Times"> East of Eden</FONT></I> is Stein beck's best novel.</P>
联系客服