标题：CSS语言
CSS样式
你可以用以下三种方式将样式表加入您的网页。而最接近目标的样式定义优先权越高。高优先权样式将继承低优先权样式的未重叠定义但覆盖重叠的定义。链入外部样式表链入外部样式表 (Linking to a Style Sheet) 
你可以先建立外部样式表文件（.css），然后使用HTML的link对象。示例如下：
<head> 
<title>title of article</title> 
<link rel=stylesheet href="http://www./rainer.css" type="text/css"> 
</head> 
而在XML中，你应该如下例所示在声明区中加入：
<? xml-stylesheet type="text/css" href="http://www./rainer.css">定义内部样式块对象定义内部样式块对象 (Embedding a Style Block) 
你可以在你的HTML文档的<HTML>；和<BODY>；标记之间插入一个<STYLE>...</STYLE>；块对象。
示例如下：
<html> 
<style type="text/css"> 
<!-- 
body {font: 10pt "Arial"} 
h1 {font: 15pt/17pt "Arial"; font-weight: bold; color: maroon} 
h2 {font: 13pt/15pt "Arial"; font-weight: bold; color: blue} 
p {font: 10pt/12pt "Arial"; color: black} 
--> 
</style> 
<body> 
请注意，这里将style对象的type属性设置为"text/css"，是允许不支持这类型的浏览器忽略样式表单。内联定义内联定义 (Inline Styles) 
内联定义即是在对象的标记内使用对象的style属性定义适用其的样式表属性。
示例如下：
这一行被增加了左右的外补丁 
样式表语法 (CSS Syntax) 
Selector{property: value} 
参数说明：
Selector -- 选择符 
property : value -- 样式表定义。属性和属性值之间用冒号（：）隔开。定义之间用分号（；）隔开 
继承的值 (The ' Inherit ' Value) 
每个属性都有一个指定的值：Inherit。它的意思是：将父对象的值等同为计算机值得到。这个值通常仅仅是备用的。显式的声明它可用来强调。
上面这些可能对于初学者来说还不太好理解，但主要是明白CSS就相当于网页的衣服一样，学会用了就好办。WEB标准提倡样式（即CSS）与结构（HTML，XML等）分离，所以学会CSS的应用就显得更加重要了。
=======================================
常见问题
1、CSS在网页制作中一般有三种方式的用法，那么具体在使用时该采用哪种用法？ 
当有多个网页要用到的CSS，采用外连CSS文件的方式，这样网页的代码大大减少，修改起来非常方便；只在单个网页中使用的CSS，采用文档头部方式；只有在一个网页一、两个地方才用到的CSS，采用行内插入方式。
2、CSS的三种用法在一个网页中要以混用吗？ 
三种用法可以混用，且不会造成混乱。这就是它为什么称之为“层叠样式表”的原因，浏览器在显示网页时是这样处理的：先检查有没有行内插入式CSS，有就执行了，针对本句的其它CSS就不去管它了；其次检查头部方式的CSS，有就执行了；在前两者都没有的情况下再检查外连文件方式的CSS。因此可看出，三种CSS的执行优先级是：行内插入式、头部方式、外连文件方式。
3、在Dreamweaver3中如何使外部文件式CSS？ 
在Dreamweaver3中使用外连文件式CSS并没有特殊要求，同样是用记事本创建一个*.css文件，在网页的<head>；与</head>；之间加上一句这样的代码：<link rel="stylesheet" href="在这里填上你的CSS文件地址（相对路径+文件名）" type="text/css"> 就行了。
4、如何用Dreamweaver3快速创建CSS外连式文件？ 
对于一个初接触CSS的网页设计人员来讲，要用记事之类的编辑器，去创建一个CSS外连式文件是相当困难的。由于Dreamweaver3对CSS支持的很好，用它来帮助就轻松多了。具体可以这样操作：
1）先在纸上写好在网站的网页中可能要用到的格名称，然后在Dreamweaver3的编辑窗中调出CSS面板，一个一个地定义，并在一个空白页上适当地写一点相关内容，边定义边试用，效果不满意，立即修改； 
2）全部定义好后，再用记事本创建一个空的CSS外连式文件，把在<head>；与</head>；之间的那段定义好的CSS复制到CSS文件中去，就大功告成了。整个过程就是点鼠标，方便吧？ 
5、在Dreamweaver3中采用行内插入式CSS要手动写代码吗？ 
不用！先用CSS面板定义好要用的CSS，然后，在要插入CSS的标记插入：style=""，再把你刚才定义的CSS从<head>；后面拖到这个双引号中来，把花括号以外的部分删去就行了。
6、在方档头部方式和外连文件方式的CSS中都有“<!--”和“-->；”，好像没什么用，不要可以吗？ 
这一对东东的作用是为了不引起低版本浏览器的错误。如果某个执行此页面的浏览器不支持CSS，它将忽略其中的内容。虽然现在使用不支持CSS浏览器的人已很少了，由于互联网上几乎什么可能都会发生，所以还是留着为妙。
7、如何给一部分文字加背景色？ 
给文字加上不同颜色，在DW3中只要在属性面板上选取文字的颜色就行了，非常方便，但要给部分文字加不同的背景色却没有相应的功能，我们可以先做一个定义背景色的CSS（如：bgstyle），在DW3中点几下鼠就完成了。如一个定义淡黄色 
背景的CSS是这样的：
<style type="text/css"> 
<!-- 
.bgstyle { background: #FFFFCC} 
--> 
</style> 
在要用时选取那段文字，再在CSS面板上点一下“bgstyle”就行了。
8、如何给部分文字加背景图像？ 
与加背景色操作类似，中是在背景在选择加载图像就是了，一个定义好的加背景图像的CSS例子的代码是这样的：
<style type="text/css"> 
<!-- 
.imgbgstyle { background-image: url(/logo.gif)} 
--> 
</style> 
在要用时选取那段文字，再在CSS面板上点一下“imgbgstyle”就行了。
9、如何使页面的背景在文字“滚动”时背景图案静止不动？ 
要使背景图案不随文字“滚动”的CSS是这样的：
<style type="text/css"> 
<!-- 
BODY { background: purple url(/bg.jpg); 
background-repeat:repeat-y; 
background-attachment:fixed 
} 
--> 
</style> 
10、如何定义字间距？ 
在DW3中CSS的属性定义对话框（style Definition for .style1）的“Block”上的“letter spaceing”属性定义的就是字间距，它指的是每一个字符之间的额外间距，经长度为单位，正负值均可，当取负值时产生字符挤在一起的效果。下面代码是一个定义好的字间距CSS例子：
<style type="text/css"> 
<!-- 
.style1 { letter-spacing: 3px} 
--> 
</style> 
11、如何给文字加上划线、下划线、删除线和闪烁？ 
在DW3中CSS的属性定义对话框（style Definition for .style1）的“Type”上的“decoration”属性定义的就是这些内容，要注意的是闪烁属性有些版本的浏览器不支持，少用为好。下面是一个定义好上述效果的CSS例子：
<style type="text/css"> 
<!-- 
.style1 { text-decoration: underline overline line-through blink} 
--> 
</style> 
其中：“underline”是定义下划线；“overline ”是定义上划线；“ line-through”定义的是删除线；“blink” 定义的是文字闪烁。
12、如何使网页具有“首行缩进”功能？ 
由于DW3输入空格不方便，利用“首行缩进”将弥补这个不足。在DW3中CSS的属性定义对话框（style Definition for .style1）的“Block”上的“text-indent”属性定义的就是“首行缩进”，所谓“首行”是指每段内容的第一行，也就是直接按回车键就形成了一个新的段落。缩进最好以“em”（字符）为单位，比如：汉字编排要求每段开始缩进两个汉　字，设置好的CSS如下所示：
<style type="text/css"> 
<!-- 
.style1 { text-indent: 2em} 
--> 
</style> 
在DW3要注意：在DW3中CSS的属性定义对话框（style Definition for .style1）的“Block”上的“text-indent”右 
面的缩进单位选择框中“ems”指的就是“em”。
13、在用表格进行排版时，能使某一方向上的内容离开表格线一点吗？ 
可以！在DW3中CSS的属性定义对话框（style Definition for .style1）的“Box”上的“margin”定义的就是内容离 
开边缘的距离，分别可定义四个方向：“top”“bottom”“left”“right”。下面就是定义在左边离开“10px”的CSS例 
子代码：
<style type="text/css"> 
<!-- 
.style1 { margin: 0px 0px 0px 10px} 
--> 
</style> 
14、能给某部分内容加边框吗？ 
用CSS可以给某部分内容加边框，在DW3中CSS的属性定义对话框（style Definition for .style1）的“Border”定义的就是边框线，“top”“bottom”“left”“right”四边可分别定义线的粗细和颜色，这些定义好后不要忘记在下面的“style”中定义线型，否则将看不边框线，因为默认的线型是“none”。下面是一个定义了上边框为：蓝色细线；左边框为：绿色中粗线的CSS例子：
<style type="text/css"> 
<!-- 
.style1 { border: solid; border-width: thin 0px 0px medium; border-color: #0000FF black black #00FF00} 
===================
css语言的作用
⑴在几乎所有的浏览器上都可以使用。
⑵以前一些非得通过图片转换实现的功能，现在只要用CSS就可以轻松实现，从而更快地下载页面。
⑶使页面的字体变得更漂亮，更容易编排，使页面真正赏心悦目。
⑷你可以轻松地控制页面的布局。
⑸你可以将许多网页的风格格式同时更新，不用再一页一页地更新了。你可以将站点上所有的网页风格都使用一个CSS文件进行控制，只要修改这个CSS文件中相应的行，那么整个站点的所有页面都会随之发生变动。
想一想，没有使用CSS前我们是如何控制字体的颜色和大小以及所使用的字体的？我们一般使用HTML标签来实现，代码非常烦琐。很难想象，如果在一个页面里需要频繁地更替字体的颜色大小，最终生成的HTML代码的长度一定臃肿不堪。
CSS的语法
CSS的定义是由三个部分构成：选择符选择符（selector），属性（properties）和属性的取值（value）。
语法： selector {property: value} （选择符 {属性：值}) 
说明： 
·选择符是可以是多种形式，一般是你要定义样式的HTML标记，例如BODY、P、TABLE……，你可以通过此方法定义它的属性和值，属性和值要用冒号隔开： 
例子：body {color: black}，此例的效果是使页面中的文字为黑色。
·如果属性的值是多个单词组成，必须在值上加引号，比如字体的名称经常是几个单词的组合： 
例子：p {font-family: "sans serif"} （定义段落字体为sans serif) 
· 如果需要对一个选择符指定多个属性时，我们使用分号将所有的属性和值分开： 
例子：p {text-align: center; color: red} （段落居中排列；并且段落中的文字为红色）选择符组你可以把相同属性和值的选择符组合起来书写，用逗号将选择符分开，这样可以减少样式重复定义： 
h1,h2,h3,h4,h5,h6 { color: green } （这个组里包括所有的标题元素，每个标题元素的文字都为绿色） 
p,table{ font-size: 9pt } （段落和表格里的文字尺寸为9号字） 
效果完全等效于： 
p { font-size: 9pt } 
table { font-size: 9pt }类选择符用类选择符你能够把相同的元素分类定义不同的样式，定义类选择符时，在自定类的名称前面加一个点号。假如你想要两个不同的段落，一个段落向右对齐，一个段落居中，你可以先定义两个类： 
p.right {text-align: right} 
p.center {text-align: center} 
然后用不在不同的段落里，只要在HTML标记里加入你定义的class参数： 
这个段落向右对齐的 
这个段落是居中排列的 
类选择符还有一种用法，在选择符中省略HTML标记名，这样可以把几个不同的元素定义成相同的样式： 
.center {text-align: center} （定义.center的类选择符为文字居中排列） 
这样的类可以被应用到任何元素上。下面我们使h1元素（标题1）和p元素（段落）都归为“center”类，这使两个元素的样式都跟随“.center”这个类选择符： 
<h1 class="center">；这个标题是居中排列的</h1> 
这个段落也是居中排列的 
注意：这种省略HTML标记的类选择符是我们经后最常用的CSS方法，使用这种方法，我们可以很方便的在任意元素上套用预先定义好的类样式。ID选择符在HTML页面中ID参数指定了某个单一元素，ID选择符是用来对这个单一元素定义单独的样式。
ID选择符的应用和类选择符类似，只要把CLASS换成ID即可。将上例中类用ID替代，ID只能在一个页面中出现一次，而class可以多次运用. 
定义ID选择符要在ID名称前加上一个“#”号。和类选择符相同，定义ID选择符的属性也有两种方法。下面这个例子，ID属性将匹配所有id="intro"的元素： 
#intro 
{ 
font-size:110%; 
font-weight:bold; 
color:#0000ff; 
background-color:transparent 
} （字体尺寸为默认尺寸的110%；粗体；蓝色；背景颜色透明） 
下面这个例子，ID属性只匹配id="intro"的段落元素： 
p#intro 
{ 
font-size:110%; 
font-weight:bold; 
color:#0000ff; 
background-color:transparent 
} 
注意：ID选择符局限性很大，只能单独定义某个元素的样式，一般只在特殊情况下使用。包含选择符可以单独对某种元素包含关系定义的样式表，元素1里包含元素2，这种方式只对在元素1里的元素2定义，对单独的元素1或元素2无定义，例如： 
table a 
{ 
font-size: 12px 
} 
在表格内的链接改变了样式，文字大小为12像素，而表格外的链接的文字仍为默认大小。样式表的层叠性层叠性就是继承性，样式表的继承规则是外部的元素样式会保留下来继承给这个元素所包含的其他元素。事实上，所有在元素中嵌套的元素都会继承外层元素指定的属性值，有时会把很多层嵌套的样式叠加在一起，除非另外更改。例如在DⅣ标记中嵌套P标记： 
div { color: red; font-size:9pt} 
…… 
这个段落的文字为红色9号字 
（P元素里的内容会继承DⅣ定义的属性） 
注意：有些情况下内部选择符不继承周围选择符的值，但理论上这些都是特殊的。例如，上边界属性值是不会继承的，直觉上，一个段落不会同文档BODY一样的上边界值。
另外，当样式表继承遇到冲突时，总是以最后定义的样式为准。如果上例中定义了P的颜色： 
div { color: red; font-size:9pt} 
p {color: blue} 
…… 
这个段落的文字为蓝色9号字 
我们可以看到段落里的文字大小为9号字是继承div属性的，而color属性则依照最后定义的。
不同的选择符定义相同的元素时，要考虑到不同的选择符之间的优先级。ID选择符，类选择符和HTML标记选择符，因为ID选择符是最后加上元素上的，所以优先级最高，其次是类选择符。如果想超越这三者之间的关系，可以用！important提升样式表的优先权，例如： 
p { color: #FF0000!important } 
.blue { color: #0000FF} 
#id1 { color: #FFFF00} 
我们同时对页面中的一个段落加上这三种样式，它最后会依照被！important申明的HTML标记选择符样式为红色文字。如果去掉！important，则依照优先权最高的ID选择符为黄色文字。注释：/* ... */你可以在CSS中插入注释来说明你代码的意思，注释有利于你或别人以后编辑和更改代码时理解代码的含义。在浏览器中，注释是不显示的。CSS注释以"/*" 开头，以"*/" 结尾，如下： 
/* 定义段落样式表 */ 
p 
{ 
text-align: center; /* 文本居中排列 */ 　
color: black; /* 文字为黑色 */ 
font-family: arial /* 字体为arial */ 
} 
css可以用任何写文本的工具进行开发，如文本工具，dreamweaver开发 
css也是一种语言，这种语言要和html或者xhtml语言相结合才起作用，
css简单来说就是用来美化网页用的，用css语言来控制网页的外观 
举个例子 
xhtml部分： 
<ul> 
<li><a href="#">；主页</a></li> 
<li><a href="#">；留言</a></li> 
<li><a href="#">；论坛</a></li> 
</ul> 
此时在页面上的表达形式是一个竖向列表，这样不够美观，
可以css来改善这个列表为一个横向导航条和超链接 
css部分： 
ul{list-style:none;margin:0px;padding:0px} 
ul li{margin:0px;padding:0px;float:left;} 
ul li a{display:block;width:100px;height:30px;background:#efefef;color:#333;text-decoration:none;text-align:center} 
ul li a:hover{background:#333;color:#fff;} 
添加上css后，这个列表变成横向的导航条了，超级链接是淡色背景，灰色字体，没有下划线，高度是30像素，宽度是100像素 
当我们鼠标经过这个超级链接时候，变成灰色背景，白色字体
为什么要使用CSS
在主页制作时采用CSS技术，可以有效地对页面的布局、字体、颜色、背景和其它效果实现更加精确的控制。
只要对相应的代码做一些简单的修改，就可以改变同一页面的不同部分，或者页数不同的网页的外观和格式。
它的作用可以达到：
⑴在几乎所有的浏览器上都可以使用。
⑵以前一些非得通过图片转换实现的功能，现在只要用CSS就可以轻松实现，从而更快地下载页面。
⑶使页面的字体变得更漂亮，更容易编排，使页面真正赏心悦目。
⑷你可以轻松地控制页面的布局。
⑸你可以将许多网页的风格格式同时更新，不用再一页一页地更新了。你可以将站点上所有的网页风格都使用一个CSS文件进行控制，只要修改这个CSS文件中相应的行，那么整个站点的所有页面都会随之发生变动。
想一想，没有使用CSS前我们是如何控制字体的颜色和大小以及所使用的字体的？我们一般使用HTML标签来实现，代码非常烦琐。
很难想象，如果在一个页面里需要频繁地更替字体的颜色大小，最终生成的HTML代码的长度一定臃肿不堪。
说实话，CSS就是为了简化这样的工作诞生的，当然其功能决非这么简单。
CSS是通过对页面结构的风格控制的思想，控制整个页面的风格的。
式样单放在页面中，通过浏览器的解释执行，是完全的文本，任何懂得HTML的人都可以掌握，非常的容易。甚至对一些非常老的浏览器，也不会产生页面混乱的现象。
CSS的一大优点是它的图片传输速度比较完全的HTML网页要快一点。
关于CSS的参考资料，网上有很多讨论CSS的社区，但是要系统学习CSS，选择一本好书还是非常有必要的，推荐阅读CSS三剑客之一《CSS实战手册》 
CSS具有两面性。就像它在格式化文本、导航栏、图片以及其他小小的网页方面很棒一样，当你准备好布局完整的网页时，它真正可怕的一面也展现出来了。
CSS布局有两种风格——绝对定位和浮动。绝对定位让你把一个元素以像素级的精确性定位在网页的任何位置——或者理论上是这样。这种整体控制令人兴奋，就如你将在下一章中所看到的，但是实际上很难实现。这就是大量网页使用基于浮动的布局的原因，也是本章的主题。
CSS规范化命名的三种通用命名规则
骆驼式命名法正如它的名称所表示的那样，是指混合使用大小写字母来构成变量和函数的名字。例如，下面是分别用骆驼式命名法和下划线法命名的同一个函数：
printEmployeePaychecks（）； 
print_employee_paychecks（）； 
第一个函数名使用了骆驼式命名法，函数名中的每一个逻辑断点都有一个大写字母来标记；第二个函数名使用了下划线法，函数名中的每一个逻辑断点都有一个下划线来标记。
骆驼式命名法近年来越来越流行了，在许多新的函数库和Microsoft Windows这样的环境中，它使用得相当多。另一方面，下划线法是c出现后开始流行起来的，在许多旧的程序和UNⅨ这样的环境中，它的使用非常普遍。匈牙利命名法广泛应用于象Microsoft Windows这样的环境中。Windows 编程中用到的变量（还包括宏）的命名规则匈牙利命名法，这种命名技术是由一位能干的 Microsoft 程序员查尔斯- 西蒙尼（Charles Simonyi) 提出的。
匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀，标识出变量的作用域，类型等。这些符号可以多个同时使用，顺序是先m_（成员变量）， 再指针，再简单数据类型，再其它。
例如：m_lpszStr，表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是：标识符的名字以一个或者多个小写字母开头作为前缀；前缀之后的是首字母大写的一个单词或多个单词组合，该单词要指明变量的用途。帕斯卡（pascal）命名法与骆驼命名法类似。只不过骆驼命名法是首字母小写，而帕斯卡命名法是首字母大写，如：
DisplayInfo(); 
string UserName; 
二者都是采用了帕斯卡命名法。在C#中，以帕斯卡命名法和骆驼命名法居多。三种命名规则的小结MyData 就是一个帕斯卡命名的示例 
而myData是一个骆驼命名法，它第一个单词的第一个字母小写，后面的单词首字母大写，看起来像一个骆驼 
而iMyData是一个匈牙利命名法，它的小写的i说明了它的型态，后面的和帕斯卡命名相同，指示了该变量的用途.
CSS解决了什么
CSS样式解决了一个普遍的问题 
HTML 标签原本被设计为用于定义文档内容。通过使用 <h1>；、、 这样的标签，HTML 的初衷是表达“这是标题”、“这是段落”、“这是表格”之类的信息。而文档布局希望通过浏览器来完成，而不使用任何的格式化标签。
由于两种主要的浏览器（Netscape 和 Internet Explorer）不断地将新的 HTML 标签和属性（比如字体标签和颜色属性）添加到 HTML 规范中，创建文档内容清晰地独立于文档表现层的站点变得越来越困难。
为了解决这个问题，万维网联盟（W3C），这个非营利的标准化联盟，肩负起了 HTML 标准化的使命，并在 HTML 4.0 之外创造出样式（Style）。
所有的主流浏览器均支持层叠样式表，但浏览器内核原因可能会营销CSS效果。