层叠样式表的特点
且不说过去的网页缺少动感,就是在网页内容的排版布局上也有很多困难,如果不是专业人员或特别有耐心的人,很难让网页按自己的构思和创意来显示信息。即便是掌握了HTML语言精髓的人也要通过多次地测试,才能驾驭好这些信息的排版,过程十分漫长和痛苦。为了Internet的发展,让更多人早日踏足这个多姿多彩的世界,新的HTML辅助工具呼之欲出。
样式表就是在这种需求下诞生的,它首先要做的是为网页上的元素精确地定位,可以让网页设计者象导演一样,轻易地控制由文字、图片组成的演员们,在网页这个舞台上按剧本要求好好地表演。
其次,它把网页上的内容结构和格式控制相分离。浏览者想要看的是网页上的内容结构,而为了让浏览者更好地看到这些信息,就要通过格式控制来帮忙了。以前两者在网页上的分布是交错结合的,查看修改很不方便,而现在把两者分开就会大大方便网页的设计者。内容结构和格式控制相分离,使得网页可以光由内容构成,而将所有网页的格式控制指向某个CSS样式表文件。这样一来的好出表现在两个方面:
第一,简化了网页的格式代码,外部的样式表还会被浏览器保存在缓存里,加快了下载显示的速度,也减少了需要上传的代码数量(因为重复设置的格式将被只保存一次)。
第二,只要修改保存着网站格式的CSS样式表文件就可以改变整个站点的风格特色,在修改页面数量庞大的站点时,显得格外有用。避免了一个一个网页的修改,大大减少了重复劳动的工作量,当你面对的是有数百个网页的站点时,CSS简直象是神对我们的恩赐!^_^
添加层叠样式表的方法
我们为网页添加样式表的方法有四种。
1.最简单的方法是直接添加在HTML的标识符(tag)里:
<Tag style=”properties”>网页内容</tag>
举个例子:
<p style=”color: bluefont-size: 10pt”>CSS实例</p>
代码说明:
用蓝色显示字体大小为10pt的“CSS实例”。尽管使用简单、显示直观,但是这种方法不怎么常用,因为这样添加无法完全发挥样式表的优势“内容结构和格式控制分别保存”。
2.添加在HTML的头信息标识符<head>里:
<head>
<style type=”text/css”>
<!-- 样式表的具体内容 -->
</style>
</head>
type=”text/css”表示样式表采用MIME类型,帮助不支持CSS的浏览器过滤掉CSS代码,避免在浏览器面前直接以源代码的方式显示我们设置的样式表。但为了保证上述情况一定不要发生,还是有必要在样式表里加上注释标识符“<!--注释内容-->”。
3、链接样式表
同样是添加在HTML的头信息标识符<head>里:
<head>
<link rel=”stylesheet” href=”*.css” type=”text/css” media=”screen”>
</head>
*.css是单独保存的样式表文件,其中不能包含<style>标识符,并且只能以css为后缀。
Media是可选的属性,表示使用样式表的网页将用什么媒体输出。取值范围:
·Screen(默认):输出到电脑屏幕
·Print:输出到打印机
·TV:输出到电视机
·Projection:输出到投影仪
·Aural:输出到扬声器
·Braille:输出到凸字触觉感知设备
·Tty:输出到电传打字机
·All:输出到以上所有设备
如果要输出到多种媒体,可以用逗号分隔取值表。
Rel属性表示样式表将以何种方式与HTML文档结合。取值范围:
·Stylesheet:指定一个外部的样式表
·Alternate stylesheet:指定使用一个交互样式表
4、联合使用样式表
同样是添加在HTML的头信息标识符<head>里:
<head>
<style type=”text/css”>
<!--
@import “*.css”
其他样式表的声明
-->
</style>
</head>
以@import开头的联合样式表输入方法和链接样式表的方法很相似,但联合样式表输入方式更有优势。因为联合法可以在链接外部样式表的同时,针对该网页的具体情况,做出别的网页不需要的样式规则。
需要注意的是:
·联合法输入样式表必须以@import开头。
·如果同时输入多个样式表有冲突的时候,将按照第一个输入的样式表对网页排版。
·如果输入的样式表和网页里的样式规则冲突时,使用外部的样式表。
1.通配选择符
语法:
* { sRules }
说明:
通配选择符。选定文档目录树(DOM)中的所有类型的单一对象。
假如通配选择符不是单一选择符中的唯一组成,“*”可以省略。
示例:
*[lang=fr] { font-size:14pxwidth:120px}
*.div { text-decoration:none}
2.类型选择符
语法:
E { sRules }
说明:
类型选择符。以文档语言对象(Element)类型作为选择符。
示例:
td { font-size:14pxwidth:120px}
a { text-decoration:none}
3.属性选择符
语法:
E [ attr ] { sRules }
E [ attr = value ] { sRules }
E [ attr ~= value ] { sRules }
E [ attr |= value ] { sRules }
说明:
属性选择符。
选择具有 attr 属性的 E
选择具有 attr 属性且属性值等于 value 的 E
选择具有 attr 属性且属性值为一用空格分隔的字词列表,其中一个等于 value 的 E 。这里的 value 不能包含空格
选择具有 attr 属性且属性值为一用连字符分隔的字词列表,由 value 开始的 E
示例:
h{ color: blue} /* 所有具有title属性的h对象 */ span[class=demo] { color: red} div[speed=fast][dorun=no] { color: red} a[rel~=copyright] { color:black} 4.包含选择符语法:E1 E2 { sRules }说明:包含选择符。选择所有被 E1 包含的 E2 。即 E1.contains(E2)==true 。 示例: table td { font-size:14px}
div.sub a { font-size:14px}
5.子对象选择符
语法:
E1 >E2 { sRules }
说明:
子对象选择符。选择所有作为 E1 子对象的 E2 。
示例:
body >p { font-size:14px}
/* 所有作为body的子对象的p对象字体尺寸为14px */
div ul>li p { font-size:14px}
6.ID选择符
语法:
#ID { sRules }
说明:
ID选择符。以文档目录树(DOM)中作为对象的唯一标识符的 ID 作为选择符。
示例:
#note { font-size:14pxwidth:120px}
7.类选择符
语法:
E.className { sRules }
说明:
类选择符。在HTML中可以使用此种选择符。其效果等同于E [ class ~= className ] 。请参阅属性选择符( Attribute Selectors )。
在IE5+,可以为对象的 class 属性(特性)指定多于一个值( className ),其方法是指定用空格隔开的一组样式表的类名。例如:<div class=class1 class2>。
示例:
div.note { font-size:14px}
/* 所有class属性值等于(包含)note的div对象字体尺寸为14px */
.dream { font-size:14px}
/* 所有class属性值等于(包含)note的对象字体尺寸为14px */
8.选择符分组
语法:
E1 , E2 , E3 { sRules }
说明:
选择符分组。将同样的定义应用于多个选择符,可以将选择符以逗号分隔的方式并为组。
示例:
.td1,div a,body { font-size:14px}
td,div,a { font-size:14px}
9.伪类及伪对象选择符
语法:
E : Pseudo-Classes { sRules }
E : Pseudo-Elements { sRules }
说明:
伪类及伪对象选择符。
伪类选择符。请参阅伪类( Pseudo-Classes )[:link :hover :active :visited :focus :first-child :first :left :right :lang]。
伪对象选择符。请参阅伪对象( Pseudo-Elements )[:first-letter :first-line :before :after]。
示例:
div:first-letter { font-size:14px}
a.fly :hover { font-size:14pxcolor:red}