CSS样式表简易教程
CSS样式表教程
1。[ 主题:什么是CSS?它的能做些什么? ]
CSS就是一种叫做样式表(stylesheet)的技术。也有的人称之为层叠样式表(Cascading Stylesheet)。

在主页制作时采用CSS技术,可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。

只要对相应的代码做一些简单的修改,就可以改变同一页面的不同部分,或者页数不同的网页的外观和格式。

它的作用可以达到:

(1)在几乎所有的浏览器上都可以使用。

(2)以前一些非得通过图片转换实现的功能,现在只要用CSS就可以轻松实现,从而更快地下载页面。

(3)使页面的字体变得更漂亮,更容易编排,使页面真正赏心悦目。

(4)你可以轻松地控制页面的布局 。

(5)你可以将许多网页的风格格式同时更新,不用再一页一页地更新了。你可以将站点上所有的网页风格都使用一个CSS文件进行控制,只要修改这个CSS文件中相应的行,那么整个站点的所有页面都会随之发生变动。

想一想,没有使用CSS前我们是如何控制字体的颜色和大小以及所使用的字体的?我们一般使用HTML标签来实现,例如实现右侧一个简单的"HELLO",它的代码是:
<b><font face="Arial" size="3" color="#FFFF66">HELLO</font></b>

很难想象,如果在一个页面里需要频繁地更替字体的颜色大小,最终生成的HTML代码的长度一定臃肿不堪。

说实话,CSS就是为了简化这样的工作诞生的,当然其功能决非这么简单。

CSS是通过对页面结构的风格控制的思想,控制整个页面的风格的。

式样单放在页面中,通过浏览器的解释执行,是完全的文本,任何懂得HTML的人都可以掌握,非常的容易。生殖对一些非常老的浏览器,页不会产生页面混乱的现象。

2。[ 主题:式样单的例子 ]

下面是一个式样单的例子:

==================================================================================================

你好!朋友,欢迎光临Java2000的教学区。
Hello,everybody,welcome in java2000 !
==================================================================================================

产生以上效果的HTML源代码是这样的:

<html>
<head>
<style type="text/css">
<!--
h2 { font-family: "宋体"; font-size: 12pt; font-style: italic; color: #FF0033; background-color: #FFCCCC}
h1 { font-family: "Arial"; font-size: 12pt; color: #66FF66}
-->
</style>
</head>
<body>
<h2>你好!朋友,欢迎光临Java2000的教学区。</h2>
<h1>Hello,everybody,welcome in java2000 !</h1>
</body>
</html>

下面做一些简单的说明:
(1)在黄色的CSS语法规则中这样定义了文字的风格,标签<h2>...</h2>间的字符为"宋体","大小12pt",字符是"倾斜"的,颜色"#ff0033",字符背景色"#ffcccc"。同理,标签<h1>...</h1>之间的文字字体"arial",大小"12pt",颜色"#66ff66"。

(2)上面的CSS格式里,h1和h2称为"选择对象",font-size以及color等称为"属性",属性后面的称为"参数"。

(3)通过css可以控制任何HTML标签的风格。例如<td>,<p>,<body>,<table>,<tr>,<th>等。只要在HTML的<head>区内的<style type="text/css">和</style>之间指定对应标签的风格(字体,颜色,字体大小)即可,使用"宋体的9磅字体"可非常的好看啊,许多站用的都是9pt的字体。

(4)如果你需要定义的一些标签的风格相同,可以这样做,将他们写在一起,这样又可以减少代码了:

H1, P, TD{ font-family: arial ; font-size: 12pt}

上面的代码表示:所有位于<H1>、<P>和<TD>标签内的字符将用Arial字体,12pt显示。

(5)通过CSS设置的风格对于javascripts输出的结果也是有效的。你可以看看javascripts脚本区的一些显示日期和当前时间脚本的例子,为了有效地控制输出的字符大小,我都使用了CSS。

(6)注意:有的比较老的浏览器并不支持式样单语法,会将<style type="text/css">...</style>间的文本显示出来,若要避免这种情况的发生,最好加入<!-- 和 -->。这一点与javascripts相同。

(7)在<style type="text/css"> 中的 TYPE="text/css" 的作用是设定采用何种MIME类型,浏览器在执行到这里就知道了,这样以来,不支持CSS的浏览器可以忽略样式表。

3。[ 主题:使用不同的CSS写法-CSS进阶 ]

CSS的写法可以用以下的几种方法实现:

(1)使用Embed(嵌入样式单)排版样式:

即将CSS代码直接插入每个页面的HTML的<head>区,就象上一节看到的。使用<style>...</style>标签。例如:

<style type="text/css">
<!--
h2 { font-family: "宋体"; font-size: 12pt; font-style: italic; color: #FF0033; background-color: #FFCCCC}
h1 { font-family: "Arial"; font-size: 12pt; color: #66FF66}
-->
</style>

(2)使用"link(外部样式单)排版样式":

即你可以将多个页面的排版风格都用一个样式单文件控制。这个外部的样式单文件(一个扩展名是css的文本文件)将设定你所有网页的规则。如果你改变样式单文件中的某行,所有页面风格用这个css文件定义的页面都会随之改变。如果你的站点文件非常多,则这项功能就非常方便了。

在<HEAD>区内使用<LINK>标签(注意:不再是<style>标签了):

<HTML>
<HEAD>
<LINK REL=stylesheet HREF="http://yoursute.com/my.css" TYPE="text/css">
</HEAD>
<body>
<h2>你好!朋友,欢迎光临Java2000的教学区。</h2>
<h1>Hello,everybody,welcome in java2000 !</h1>
</body>
</html>

★☆★说明:css文件的路径用绝对路径(http://...)表示或者用相对路径(例如:../csscode/my.css)表示都可以。

然后再单独生成一个css文件,叫做my.css (随便起名)。文件内容如下:

h2 { font-family: "宋体"; font-size: 12pt; font-style: italic; color: #FF0033; background-color: #FFCCCC}
h1 { font-family: "Arial"; font-size: 12pt; color: #66FF66}

只要将这个CSS文件上传到服务器指定的目录即可。

(3)使用"inline(行内样式单)排版样式":

inline样式单采用HTML标签的"style"属性,它的特点是"定义某一个标签的式样单风格",只对所定义的标签起作用,并非对整个页面起作用。例如:

<p style="font-size: 14pt ; color: #99ff99 ; font-family: 宋体">层叠式样单</p>

看到的效果:

层叠式样单

使用行内样式单,你必须为每行指定样式规则,否则下一行时浏览器将使用页面的缺省设置。 但是:有时候这种方式却非常有效。

(4)使用"import(输入的外部式样单)"--适用于IE浏览器。

<html>
<head>
<style type="text/css">
<!--
@import url(my.css);
-->
</style>
</head>
<body>
<h3>输入的外部式样单</h3>
</body>
</html>

其中my.css样式单文件的内容如下:

h3 { font-family: "宋体"; font-size: 12pt color: green }

执行的结果如下:

输入的外部式样单
4。[ 主题:需要特别说明的一些问题--CSS进阶]

★☆★CSS的继承性问题:

看了下面的例子就知道了,如果定义

h1 { color:yellow }

即,告诉浏览器将所有<B>标签内的文字用蓝色显示。

但是,如果使用如下的HTML语法:

<h1>层叠<I>式样单</I>的例子</h1>

对于<I>标签并没有设定样式,但因为<I>位于<H1>之中,所以它将继承<H1>设定的样式,也以黄色显示。

层叠式样单的例子
★☆★CSS的优先级问题:

如果混合使用三种式样单,优先级:inline > embed > link 式样单。

★☆★特别指定的样式单的优先级大于继承的式样,例:
BODY { color: green }
P { color: yellow}

特别规定是:<P>中的文字用黄色显示,但它同时也继承了<BODY>的绿色规定。但是特别指定了的式样的优先级大于继承的式样,所以<P>之内的文字用黄色显示。

 

 

 

★☆★Netscape Communicator 和 IE 4.0对于CSS的理解是不完全相同的。

这就意味这并非全部的css都能在两个浏览器中执行时得到同样的结果。所以,最好使用两种浏览器检测一下。

5。[ 主题:关于CSS中的类-CLASS ]

★☆★ 先看一个简单的例子:以下是常见按钮,使用"类"控制字体的按钮是不是漂亮了许多?而没有使?quot;类"控制的按钮的字体看上去就有点变形?本例使用9pt大小的宋体字控制的。


这是"类"的一个用途。

奥秘是这样的:

先定义一个"类---class":

<style type="text/css">
<!--
.pt9 { font-family: "宋体"; font-size: 9pt}
-->
</style>

这里"类"的名字叫做"pt9",前面有一个"."。

然后在HTML中加上class="pt9"即可,如下:

<form method="post" action="...">
<input type="submit" name="Submit" value="使用了类的按钮" class="pt9">
</form>

是不是非常简单?

★☆★再进一步看看-- 一个标签可以定义数个"类"。

P.green { color: green }
P.yellow { color: yellow}
P.red { color: red}

在HTML中,这样做(只要引用相应的类就可以了):


<P CLASS="green"> 绿黄色显示的字符 </P>
<P CLASS="yellow"> 黄色显示的字符 </P>
<P CLASS="red"> 红色显示的字符 </P>

显示的结果如下:

绿黄色显示的字符

黄色显示的字符

红色显示的字符

6。[ 主题:CSS的字体、字型控制 ]

★☆★使用CSS你可以对页面的字体进行任意的控制,比起HTML简直方便不知多少。

CSS使用"font-size"属性来控制字体大小。

CSS中可以使用的单位:points, pixels等单位 。


   ★使用 points(点):

td { font-size: 9pt }

告诉浏览器以9 points的尺寸显示<TD>标签内的字符,本页就采用9pt的字体,我认为"宋体+9pt"是非常漂亮的选择。Points是确定文字尺寸非常好的单位,它在所有的浏览器和操作平台上都适用。

   ★使用pixels(象素):

td { font-size: 9px }

使用"象素"的缺点是,页面显示不稳定,字体时大时小,而使用points则没有这种问题。

此外你还可以使用如下的单位:

in (英寸)
cm (厘米)
mm (毫米)

★☆★字型控制

   { font-family:Arial } 可以只设置一种字体。

   { font-family:Arial,Helvetica,sans-serif } 也可以设置多种字体,将按照字型顺序查找显示。

   { font-family:"Courier New" } 字型名字包括2个以上的词时,要使用引号。

★☆★字体粗细控制

   { font-weight:bold } 字体加粗显示,还可以使用:extra-light,light,demi-light,medium,demi-bold,bold,extra-bold等参数。

★☆★字型样式控制

   { font-style:italic } 设置字体倾斜,可以使用normal,italic。

7。[ 主题:CSS产生的特殊效果 ]

经常有朋友问:如何使有超级连接的文字不出现下划线,如何使鼠标移动到超连上产生变色的效果?其实这些通过传统的方法是办不到的。而使用CSS的控制却可以非常轻松地作到,而且,页面的代码也不会臃肿。

★★先看看超连没有下划线的例子:

例子1: 这个连接可以去页面底部,但是没有下划线。

是如何作到这一点的呢?在<head>和</head>之间加上如下的CSS语法控制:

<style type="text/css">
<!--
a:link { text-decoration: none}
a:active { text-decoration: none }
a:visited { text-decoration: none }
-->
</style>

这样浏览器在执行时,就明白:

a:link 指正常的未被访问过的链接
a:active 指正在点击的链接
a:visited 指已经访问过的链接
其中,text-decoration是文字修饰效果的意思,none参数表示使有超级链接的文字不显示下划线。如果讲none替换成underline就表示有下划线,换成overline则给超连文字加上划线,换成 line-through给超连文字加上删除线,blink则使文字在闪烁。


★★类似的控制:使粗体文字加上删除线。

例子2: 闪烁的粗体文字 使用的代码是:B { text-decoration: line-through }

★★类似的控制:是粗体文字中所有的字母大写。

使用代码: B { text-transform: uppercase }

例子3:产生既大写,又有颜色,又有删除线的效果 hello welcome and enjoy them !


以上的代码是:b { text-decoration: line-through; text-transform: uppercase; color: #66FFFF}

类似的,用lowercase使所有字母小写显示,capitalize 使每个单词的首字母大写显示。


★★下面则是产生连接变色效果的内容:

在上面的"例子1"中,如果作一点修饰,可以使具有link,active,visited属性的连接显示不同的颜色,但是却不会产生鼠标覆盖变色效果。先看下面的代码,使连接文字显示绿色,正在点击的连接显示黄色,已经反复问过的连接显示红色。算是复习前面的内容(别忘记啊!):

<style type="text/css">
<!--
a:link { text-decoration: none ; color: green }
a:active { text-decoration: none ; color: yellow }
a:visited { text-decoration: none ; color: red }
-->
</style>

如果要产生变色效果,就要用到另一个属性了,这就是 hover,看下面的代码。

a:hover { text-decoration: none ; color: yellow } 表示鼠标移动到连接文字上时,文字修饰风格为"无"(即没有下划线),同时显示黄色。

a:hover { text-decoration: underline; color: green } 表示鼠标移动到连接文字上时,文字修饰风格为"underline"(即下划线),同时显示绿色。

★★扩展一下:如果我们同时用下面2种属性,会产生什么效果呢?


a:link { text-decoration: none ; color: yelloe ; font-size: 9pt }

a:hover { text-decoration: underline; color: green ; font-size: 12pt }

连接文字没有下划线,黄色显示,9pt大小。鼠标移动到连接上时出现下划线,颜色为绿色,字符大小12pt。是不是变色了?而且字体由于大小变化,就有动感了,似乎一下子扩大了。

总之,所有前面讲过的方法,要综合运用才可以呀。

★★注意:并不是所有的浏览器都支持所有的选项属性。自己在多个浏览器上测试一下。   (3)使用"inline(行内样式单)排版样式":

inline样式单采用HTML标签的"style"属性,它的特点是"定义某一个标签的式样单风格",只对所定义的标签起作用,并非对整个页面起作用。例如:

<p style="font-size: 14pt ; color: #99ff99 ; font-family: 宋体">层叠式样单</p>

看到的效果:

层叠式样单

使用行内样式单,你必须为每行指定样式规则,否则下一行时浏览器将使用页面的缺省设置。 但是:有时候这种方式却非常有效。

(4)使用"import(输入的外部式样单)"--适用于IE浏览器。

<html>
<head>
<style type="text/css">
<!--
@import url(my.css);
-->
</style>
</head>
<body>
<h3>输入的外部式样单</h3>
</body>
</html>

其中my.css样式单文件的内容如下:

h3 { font-family: "宋体"; font-size: 12pt color: green }

执行的结果如下:

输入的外部式样单
4。[ 主题:需要特别说明的一些问题--CSS进阶]

★☆★CSS的继承性问题:

看了下面的例子就知道了,如果定义

h1 { color:yellow }

即,告诉浏览器将所有<B>标签内的文字用蓝色显示。

但是,如果使用如下的HTML语法:

<h1>层叠<I>式样单</I>的例子</h1>

对于<I>标签并没有设定样式,但因为<I>位于<H1>之中,所以它将继承<H1>设定的样式,也以黄色显示。

层叠式样单的例子
★☆★CSS的优先级问题:

如果混合使用三种式样单,优先级:inline > embed > link 式样单。

★☆★特别指定的样式单的优先级大于继承的式样,例:
BODY { color: green }
P { color: yellow}

特别规定是:<P>中的文字用黄色显示,但它同时也继承了<BODY>的绿色规定。但是特别指定了的式样的优先级大于继承的式样,所以<P>之内的文字用黄色显示。

 

 

 

★☆★Netscape Communicator 和 IE 4.0对于CSS的理解是不完全相同的。

这就意味这并非全部的css都能在两个浏览器中执行时得到同样的结果。所以,最好使用两种浏览器检测一下。

5。[ 主题:关于CSS中的类-CLASS ]

★☆★ 先看一个简单的例子:以下是常见按钮,使用"类"控制字体的按钮是不是漂亮了许多?而没有使用"类"控制的按钮的字体看上去就有点变形?本例使用9pt大小的宋体字控制的。


这是"类"的一个用途。

奥秘是这样的:

先定义一个"类---class":

<style type="text/css">
<!--
.pt9 { font-family: "宋体"; font-size: 9pt}
-->
</style>

这里"类"的名字叫做"pt9",前面有一个"."。

然后在HTML中加上class="pt9"即可,如下:

<form method="post" action="...">
<input type="submit" name="Submit" value="使用了类的按钮" class="pt9">
</form>

是不是非常简单?

★☆★再进一步看看-- 一个标签可以定义数个"类"。

P.green { color: green }
P.yellow { color: yellow}
P.red { color: red}

在HTML中,这样做(只要引用相应的类就可以了):


<P CLASS="green"> 绿黄色显示的字符 </P>
<P CLASS="yellow"> 黄色显示的字符 </P>
<P CLASS="red"> 红色显示的字符 </P>

显示的结果如下:

绿黄色显示的字符

黄色显示的字符

红色显示的字符

6。[ 主题:CSS的字体、字型控制 ]

★☆★使用CSS你可以对页面的字体进行任意的控制,比起HTML简直方便不知多少。

CSS使用"font-size"属性来控制字体大小。

CSS中可以使用的单位:points, pixels等单位 。


   ★使用 points(点):

td { font-size: 9pt }

告诉浏览器以9 points的尺寸显示<TD>标签内的字符,本页就采用9pt的字体,我认为"宋体+9pt"是非常漂亮的选择。Points是确定文字尺寸非常好的单位,它在所有的浏览器和操作平台上都适用。

   ★使用pixels(象素):

td { font-size: 9px }

使用"象素"的缺点是,页面显示不稳定,字体时大时小,而使用points则没有这种问题。

此外你还可以使用如下的单位:

in (英寸)
cm (厘米)
mm (毫米)

★☆★字型控制

   { font-family:Arial } 可以只设置一种字体。

   { font-family:Arial,Helvetica,sans-serif } 也可以设置多种字体,将按照字型顺序查找显示。

   { font-family:"Courier New" } 字型名字包括2个以上的词时,要使用引号。 ★☆★字体粗细控制

   { font-weight:bold } 字体加粗显示,还可以使用:extra-light,light,demi-light,medium,demi-bold,bold,extra-bold等参数。

★☆★字型样式控制

   { font-style:italic } 设置字体倾斜,可以使用normal,italic。

7。[ 主题:CSS产生的特殊效果 ]

经常有朋友问:如何使有超级连接的文字不出现下划线,如何使鼠标移动到超连上产生变色的效果?其实这些通过传统的方法是办不到的。而使用CSS的控制却可以非常轻松地作到,而且,页面的代码也不会臃肿。

★★先看看超连没有下划线的例子:

例子1: 这个连接可以去页面底部,但是没有下划线。

是如何作到这一点的呢?在<head>和</head>之间加上如下的CSS语法控制:

<style type="text/css">
<!--
a:link { text-decoration: none}
a:active { text-decoration: none }
a:visited { text-decoration: none }
-->
</style>

这样浏览器在执行时,就明白:

a:link 指正常的未被访问过的链接
a:active 指正在点击的链接
a:visited 指已经访问过的链接
其中,text-decoration是文字修饰效果的意思,none参数表示使有超级链接的文字不显示下划线。如果讲none替换成underline就表示有下划线,换成overline则给超连文字加上划线,换成 line-through给超连文字加上删除线,blink则使文字在闪烁。


★★类似的控制:使粗体文字加上删除线。

例子2: 闪烁的粗体文字 使用的代码是:B { text-decoration: line-through }

★★类似的控制:是粗体文字中所有的字母大写。

使用代码: B { text-transform: uppercase }

例子3:产生既大写,又有颜色,又有删除线的效果 hello welcome and enjoy them !


以上的代码是:b { text-decoration: line-through; text-transform: uppercase; color: #66FFFF}

类似的,用lowercase使所有字母小写显示,capitalize 使每个单词的首字母大写显示。


★★下面则是产生连接变色效果的内容:

在上面的"例子1"中,如果作一点修饰,可以使具有link,active,visited属性的连接显示不同的颜色,但是却不会产生鼠标覆盖变色效果。先看下面的代码,使连接文字显示绿色,正在点击的连接显示黄色,已经反复问过的连接显示红色。算是复习前面的内容(别忘记啊!):

<style type="text/css">
<!--
a:link { text-decoration: none ; color: green }
a:active { text-decoration: none ; color: yellow }
a:visited { text-decoration: none ; color: red }
-->
</style>

如果要产生变色效果,就要用到另一个属性了,这就是 hover,看下面的代码。

a:hover { text-decoration: none ; color: yellow } 表示鼠标移动到连接文字上时,文字修饰风格为"无"(即没有下划线),同时显示黄色。

a:hover { text-decoration: underline; color: green } 表示鼠标移动到连接文字上时,文字修饰风格为"underline"(即下划线),同时显示绿色。

★★扩展一下:如果我们同时用下面2种属性,会产生什么效果呢?


a:link { text-decoration: none ; color: yelloe ; font-size: 9pt }

a:hover { text-decoration: underline; color: green ; font-size: 12pt }

连接文字没有下划线,黄色显示,9pt大小。鼠标移动到连接上时出现下划线,颜色为绿色,字符大小12pt。是不是变色了?而且字体由于大小变化,就有动感了,似乎一下子扩大了。

总之,所有前面讲过的方法,要综合运用才可以呀。

★★注意:并不是所有的浏览器都支持所有的选项属性。自己在多个浏览器上测试一下。