分享
 
 
 

CSS教程(二)

王朝html/css/js·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

---《网猴》版权所有

我们已经学了将样式表加到网页的一种方法。实际上你可以使用4种方法。每种方法都有其不同的优点:

* 将样式表植入HTML文件中。

* 将一个外部样式表链接到HTML文件上。

* 将一个外部样式表输入到HTML文件中。

* 将样式表加入到HTML文件行中。

植入样式表:

这就是我们在上一页中用的方法,所有的样式表信息都列于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在外部样式表文件和植入的样式表中都设定了规则。在两者冲突的情况下,浏览器应执行哪一项规则呢?植入的规则此时将占上风。所以文字显示效果如下:

Stylesheets: The Tool of the Web Design Gods

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顶部加入样表代码。加入行内的样式表属性将使浏器同样执行样式表规则。

该方法不方便之处在于:你必须在每行指中都中加入样式规则,否则下一行时浏器将转回到文件的缺省设置。

加入行内的样式表相比不如植入、链接及输入的样式表那样功能强大,但有时候你会发现它也很有用。

记住,你可以同时使用几种方法,其实,样式表的能力就在于综合你加入网页的各种样式。

我们已经学习了所有的样式表基本语法。下面我将给你讲几个你肯定会非常感兴趣的技巧和快捷方式.

分类

我先前已经讲过所有的HTML标签都可以用作选择,并附加样式表说明.但是如果你想达到的目的比这还要复杂该如何处理呢?比如,你想让主体文字的1段用绿色显示,第2段用紫色显示,而第3段用灰色显示,你能做到吗?

这种情况下分类将发挥作用。你可以将段落P分成3种不同的类别,每一类应用不同的样式表说明。这些规则(不论是植入的还是外部样式表文件)将以以下方式显示:

P.first { color: green }

P.second { color: purple }

P.third { color: gray }

* 你的HTML代码如下:

<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.first { color: green } /* green

for the first paragraph of every

page */H1 { text-indent: 10px;

font-family: verdana }

IMG { margin-top: 100px } /* give

all images a top margin */

串接

你可能会问这样的问题:“为什么要把它叫做串接样式表呢?下面我们将回答你的问题。

屏幕就是一个战场,在一个HTML文件中,如果有3种不同的样式表规则都使用P作为其选择。输入的样式表指示浏览器将<P>文字用红色显示,而植入的样式表指示浏览器用蓝色显示,而行内样式表指示浏览器用黄色。

那么可怜的浏览器该听谁的呢?

好在支持样式表的浏览器自身配有样式表的串接顺序来应付这种情形。总有几种样式表规则要比其它的规则更重要。根据正式的规定,以下为样式表的串接顺序:

1. Inline styles

2. (行内样式) Embedded styles

3. (植入样式) Linked styles (链接样式)

4. Imported styles (输入样式)

5. Default browser styles(缺省浏览器样式)

浏览器将按照上述顺序执行样式表的指令。

但是还要一个问题。如果同一种类的多个规则相互冲突怎么办?比如,如果一项植入样式表规则将<P>以绿色显示,而另一个规则要求以红色显示?

多亏聪明的样式表标准的发明人,对于这种冲突也有一个顺序,但很复杂。这里有一个极其简单的解决顺序:

1. 使用特别说明的样式表规则,例:

BODY { color: green }

P { color: red }

有一项规则特别说明 <P> 中的文字一红色显示,但它同时也继承了<BODY>的绿色规定。但是特别说明了的规则的重要性要大于继承的规则,所以<P>之内的文字一红色显示。

2. 应用继承的样式表规则

如果不存在第1步中所列的特别说明的规则(比如存在特别说明了的多项规则),则浏览器转向执行继承的规则。如果找不到继承的规则,则浏览器转向执行第3步。

3. 按照样式表规则在HTML中的显示顺序执行。

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>

该例中样式表规则要求浏览器使用Impact,但是传统的HTML<FONT FACE>标签要求用Times字体,一个很明显的传统。

根据正式的样式表规定,应该优先执行样式表规则。

但是最主要的几种浏览器Netscape 和IE 4.0 都规定应优先执行HTML。唉.......

你看到了吧,浏览器不能如我们希望的那样应用串接样式表。节哀顺变吧。

我必须得作这个简短而又尖刻的评价:串接样式表很伟大,但浏览器却不怎么样。

Internet Explorer 3.0是第一个试图支持样式表的浏览器,它的尝试是很有勇气的,特别是在尚未确定样式表的正式标准的时候更显得可贵。但也因为如此,IE 3.0支持了CSS的大部分属性,但也存在一些小毛病。

你可能以为等Netscape Communicator和IE 4.0问世的时候将会更坚定地支持CSS。很可惜。似乎微软和网景关系的开发者对CSS的某些属性都作了自己的阐释。而双方的阐释彼此互不支持。

结果如何呢?应用样式表就象是行走在地雷区一般。大部分的东西都很正常,但有些不是。甚至有些东西都能运转,但在不同的浏览器上的显示却不同。

在以后4天的学习中,我将尽力说明不同的浏览器各自支持什么属性。但是其中的细节就需要你自己亲自去趟这个雷区了。将利用样式表制作的产品放到不同的浏览器和平台上进行测试是非常有必要的。这是避免令人不愉快的结果的唯一办法。

同时,我们应该大声疾呼,让微软和网景公司明白必须统一对串接样式表的支持,只有这样才能实现标准化的设计。

今天我们探索了样式表的神奇魅力及其基本使用方法。

为什么使用串接样式表?因为它能对网页的设计施以绝对的控制。它还是维护和更新一个网站最有效的途径。它能使网页的体积更小下载速度更快。

CSS如何应用呢?通过每一项样式表规则应用。样式表规则由选择和说明两项构成。规则可以被植入、链接、输入HTML或加入HTML文件行内。每种网网页中加入样式表的方法都有各自的优势。

下面的4天中,我们将深入学习样式表的各项属性,了解它的威力。以下是大致的学习计划:

* 第2日:字体

* 第3日:图文和布局

* 第4日:颜色和背景

* 第5日:定位

明天见

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有