CSS(Cascading Style Sheet)可译为“层叠样式表”或“级联样式表”,它定义如何显示 HTML 元素,用于控制Web页面的外观。
通过使用CSS实现页面的内容与表现形式分离,极大提高了工作效率 。
样式存储在样式表中,通常放在<head>部分或存储在 外部CSS文件中。
作为网页标准化设计的趋势,CSS取得了浏览器厂商的广泛支持,正越来越多的被应用到网页设计中去。
CSS有各种版本(即Level),所以知道要使用哪个版本是很重要的。
CSS 1 在1996年末成为推荐标准,其中包含非常基本的属性,比如字体,颜色、空白边。
CSS2 在此基础上添加了高级概念(比如浮动和定位)以及高级的选择器(比如子选择器、相邻同胞选择器和通用选择器)。
在编写本书时,CSS2仍然是CSS的最新版本,尽管它早在1998年就已经成为推荐标准。
万维网联盟(W3C)的行动非常缓慢,所以尽管CSS3的开发工作在新千年开始之前就开始了,但是距离最终的发布还有相当长的路要走,为提高开发和浏览器实现的速度,CSS3被分割成模块,这些模块可以独立发布和实现。
CSS3包含一些令人兴奋的新特性,包括一个用于多列布局的模块,但是,选择器模块最接近于完成,可能在2006年成为推荐标准。
因为预期从CSS2到CSS3的发布之间时间会很长,2002年人们启动了CSS2.1的开发。
这是CSS2的修订版,它计划纠正一些错误,并且更精确地描述CSS的浏览器实现。
CSS2.1正在逐渐接近完成,但是可能在2006年年底之前无法实现,然而,它更准确地反映了CSS当前的状态。
层叠样式表解决了一个普遍的问题
HTML 标签原本被设计为用于定义文档内容。
通过使用 <h1>、<p>、<table>这样的标签,HTML 的初衷是表达“这是标题”、“这是段落”、“这是表格”之类的信息。
同时文档布局由浏览器来完成,而不使用任何的格式化标签。
由于两种主要的浏览器(Netscape 和 Inter Explorer)不断地将新的 HTML 标签和属性(比如字体标签和颜色属性)添加到 HTML 规范中,创建文档内容清晰地独立于文档表现层的站点变得越来越困难。
为了解决这个问题,万维网联盟(W3C),这个非营利的标准化联盟,肩负起了 HTML 标准化的使命,并在 HTML 4.0 之外创造出样式(Style)。
所有的主流浏览器均支持层叠样式表。
层叠式表的特点
1、便于页面的修改。
2、便于页面风格的统一。
3、减少网页的体积。
层叠样式表极大地提高了工作效率
样式表定义如何显示 HTML 元素,就像 HTML 3.2 的字体标签和颜色属性所起的作用那样。
样式通常保存在外部的 .css 文件中。
通过仅仅编辑一个简单的 CSS 文档,外部样式表使你有能力同时改变站点中所有页面的布局和外观。
由于允许同时控制多重页面的样式和布局,CSS 可以称得上 WEB 设计领域的一个突破。
作为网站开发者,你能够为每个 HTML 元素定义样式,并将之应用于你希望的任意多的页面中。
如需进行全局的更新,只需简单地改变样式,然后网站中的所有元素均会自动地更新。
[1]
编辑本段CSS历史
1994年哈坤·利提出了CSS的最初建议;伯特·波斯(Bert Bos)当时正在设计一个叫做Argo的浏览器,他们决定一起合作设计CSS。
当时已经有过一些关于样式表语言的建议了,但CSS是第一个含有“层叠”的主意的。
在CSS中,一个文件的样式可以从其他的样式表中继承下来。
读者在有些地方可以使用他自己更喜欢的样式,在其他地方去继承,或“层叠”作者的样式, 这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合各人的爱好。
哈坤于1994年在芝加哥的一次会议上第一次提出了CSS的建议,1995年他与波斯一起再次提出这个建议。
当时W3C刚刚建立,W3C对CSS的发展很感兴趣,它为此组织了一次讨论会。
哈坤、波斯和其他一些人(比如微软的托马斯·雷尔登)是这个项目的主要技术负责人。
1996年底,CSS已经完成。
1996年12月CSS要求的第一版本被出版。
1997年初,W3C内组织了专门管CSS的工作组,其负责人是克里斯·里雷。
这个工作组开始讨论第一版中没有涉及到的问题,于是1998年5月出版了CSS的第二版。
到2007年为止,第三版还未完备。
编辑本段使用CSS布局的优点
采用CSS布局相对于传统的TABLE网页布局而具有以下3个显著优势:
1:表现和内容相分离
将设计部分剥离出来放在一个独立样式文件中,HTML文件中只存放文本信息。
这样的页面对搜索引擎更加友好。
2:提高页面浏览速度
对于同一个页面视觉效果,采用CSS布局的页面容量要比TABLE编码的页面文件容量小得多,前者一般只有后者的1/2大小。
浏览器就不用去编译大量冗长的标签。
3:易于维护和改版
你只要简单的修改几个CSS文件就可以重新设计整个网站的页面。
4: 使用CSS布局更符合现在的W3C标准.
ps:W3C组织并不是ISO 国际标准组织成员
编辑本段感性体验CSS
什么是CSS呢?你可能急迫的想知道答案。
但是空泛的文字描述意义不大,让我们先来一点感性体验吧。
是一个普普通通的网页。
然而通过给这个文件添加的CSS规则,我们可以得到十分美观的网页。
这还不是全部,不改动HTML,只是通过添加不同的CSS规则,我们就可以得到各种不同样式的网页:
什么是CSS
* CSS是Cascading Style Sheets(层叠样式表)的简称. * CSS语言是一种标记语言,它不需要编译,可以直接由浏览器解释执行(属于浏览器解释型语言).
CSS的作用
* 在标准网页设计中CSS负责网页内容(XHTML)的表现. * CSS文件也可以说是一个文本文件,它包含了一些CSS标记,CSS文件必须使用css为文件名后缀. * 可以通过简单的更改CSS文件,改变网页的整体表现形式,可以减少我们的工作量,所以她是每一个网页设计人员的必修课. * CSS是由W3C的CSS工作组产生和维护的。
为什么叫层叠? 在页面显示的过程中,有很多的样式作用在页面元素上,这些样式来自不同的地方。
浏览器自己有默认的样式,网页作者有自己写的样式,用户也可能有自己的样式, 但是最终显示的样式是其中之一,它们之间产生了冲突,CSS通过一个称为层叠(cascade)的过程处理这种冲突。
层叠给每个规则分配一个重要度:作者的样式表被认为是最重要的,其次是用户的样式表,最后是浏览器或用户代理使用的默认样式表。
为了让用户有更多的控制能力,可以通过将任何规则指定为!important来提高它的重要度,让它优先于任何规则,甚至优先于作者加上!important标志的规则。
因此,层叠采用以下重要度次序:标为!important的用户样式>标为!important的作者样式>作者样式>用户样式>浏览器/用户代理应用的样式。
然后,根据选择器的特殊性决定规则的次序。
具有更特殊选择器的规则优先于具有比较一般的选择器的规则。
如果两个规则的特殊性相同,那么后定义的规则优先。
由此可见,层叠是指不同的优先级的构成的层的叠加。
编辑本段如何将样式表加入到网页
可以用以下四种方式将样式表加入您的网页。
而最接近目标的样式定义优先权越高。
高优先权样式将继承低优先权样式的未重叠定义但覆盖重叠的定义。
例外请参阅 !important 声明。
定义内部样式块对象
你可以在你的HTML文档的<HTML>和<BODY>标记之间插入一个<STYLE>...</STYLE>块对象。
定义方式请参阅样式表语法。
示例如下: <><head><title>文档标题</title><style type=text/css><!-- body {font: 10pt "Arial"} h1 {font: 15pt/17pt "Arial"font-weight: boldcolor: maroon} h2 {font: 13pt/15pt "Arial"font-weight: boldcolor: blue} p {font: 10pt/12pt "Arial"color: black} --></style></head><body>正文内容 </body></>请注意,这里将style对象的type属性设置为"text/css",是允许不支持这类型的浏览器忽略样式表单。
内联定义 (Inline Styles)
css属性有:字体属性(font)、背景属性(background)、区块属性(block)、方框属性(box)、边框属性(border)、列表属性(list-style)、定位属性(position)等。CSS的定义是由三个部分构成 1. 基本语法 CSS的定义是由三个部分构成:选择符(selector),属性(properties)和属性的取值(value)。基本格式如下:[Copy to clipboard]CODE:selector {property: value} (选择符 {属性:值})选择符是可以是多种形式,一般是你要定义样式的HTML标记,例如BODY、P、TABLE……,你可以通过此方法定义它的属性和值,属性和值要用冒号隔开:[Copy to clipboard]CODE:body {color: black}选择符body是指页面主体部分,color是控制文字颜色的属性,black是颜色的值,此例的效果是使页面中的文字为黑色。如果属性的值是多个单词组成,必须在值上加引号,比如字体的名称经常是几个单词的组合:[Copy to clipboard]CODE:p {font-family: "sans serif"}(定义段落字体为sans serif)如果需要对一个选择符指定多个属性时,我们使用分号将所有的属性和值分开:[Copy to clipboard]CODE:p {text-align: centercolor: red}(段落居中排列;并且段落中的文字为红色)为了使你定义的样式表方便阅读,你可以采用分行的书写格式:[Copy to clipboard]CODE:p{text-align: centercolor: blackfont-family: arial}(段落排列居中,段落中文字为黑色,字体是arial)2. 选择符组你可以把相同属性和值的选择符组合起来书写,用逗号将选择符分开,这样可以减少样式重复定义:[Copy to clipboard]CODE:h1, h2, h3, h4, h5, h6 { color: green }(这个组里包括所有的标题元素,每个标题元素的文字都为绿色)[Copy to clipboard]CODE:p, table{ font-size: 9pt }(段落和表格里的文字尺寸为9号字)效果完全等效于:[Copy to clipboard]CODE:p { font-size: 9pt }table { font-size: 9pt }3. 类选择符用类选择符你能够把相同的元素分类定义不同的样式,定义类选择符时,在自定类的名称前面加一个点号。假如你想要两个不同的段落,一个段落向右对齐,一个段落居中,你可以先定义两个类:[Copy to clipboard]CODE:p.right {text-align: right}p.center {text-align: center}然后用不在不同的段落里,只要在HTML标记里加入你定义的class参数:[Copy to clipboard]CODE:<p class="right">这个段落向右对齐的</p><p class="center">这个段落是居中排列的</p>注意:类的名称可以是任意英文单词或以英文开头与数字的组合,一般以其功能和效果简要命名。类选择符还有一种用法,在选择符中省略HTML标记名,这样可以把几个不同的元素定义成相同的样式:[Copy to clipboard]CODE:.center {text-align: center}(定义.center的类选择符为文字居中排列)这样的类可以被应用到任何元素上。下面我们使h1元素(标题1)和p元素(段落)都归为“center”类,这使两个元素的样式都跟随“.center”这个类选择符:[Copy to clipboard]CODE:<h1 class="center">这个标题是居中排列的</h1><p class="center">这个段落也是居中排列的</p>注意:这种省略HTML标记的类选择符是我们经后最常用的CSS方法,使用这种方法,我们可以很方便的在任意元素上套用预先定义好的类样式。4. ID选择符在HTML页面中ID参数指定了某个单一元素,ID选择符是用来对这个单一元素定义单独的样式。ID选择符的应用和类选择符类似,只要把CLASS换成ID即可。将上例中类用ID替代:[Copy to clipboard]CODE:<p id="intro">这个段落向右对齐</p>定义ID选择符要在ID名称前加上一个“#”号。和类选择符相同,定义ID选择符的属性也有两种方法。下面这个例子,ID属性将匹配所有id="intro"的元素:[Copy to clipboard]CODE:#intro{font-size:110%font-weight:boldcolor:#0000ffbackground-color:transparent}(字体尺寸为默认尺寸的110%;粗体;蓝色;背景颜色透明)下面这个例子,ID属性只匹配id="intro"的段落元素:[Copy to clipboard]CODE:p#intro{font-size:110%font-weight:boldcolor:#0000ffbackground-color:transparent}注意:ID选择符局限性很大,只能单独定义某个元素的样式,一般只在特殊情况下使用。5. 包含选择符可以单独对某种元素包含关系定义的样式表,元素1里包含元素2,这种方式只对在元素1里的元素2定义,对单独的元素1或元素2无定义,例如:[Copy to clipboard]CODE:table a{font-size: 12px}在表格内的链接改变了样式,文字大小为12象素,而表格外的链接的文字仍为默认大小。6. 样式表的层叠性层叠性就是继承性,样式表的继承规则是外部的元素样式会保留下来继承给这个元素所包含的其他元素。事实上,所有在元素中嵌套的元素都会继承外层元素指定的属性值,有时会把很多层嵌套的样式叠加在一起,除非另外更改。例如在DIV标记中嵌套P标记:[Copy to clipboard]CODE:div { color: redfont-size:9pt}……<div><p>这个段落的文字为红色9号字</p></div>(P元素里的内容会继承DIV定义的属性)注意:有些情况下内部选择符不继承周围选择符的值,但理论上这些都是特殊的。例如,上边界属性值是不会继承的,直觉上,一个段落不会同文档BODY一样的上边界值。另外,当样式表继承遇到冲突时,总是以最后定义的样式为准。如果上例中定义了P的颜色:[Copy to clipboard]CODE:div { color: redfont-size:9pt}p {color: blue}……<div><p>这个段落的文字为蓝色9号字</p></div>我们可以看到段落里的文字大小为9号字是继承div属性的,而color属性则依照最后定义的。不同的选择符定义相同的元素时,要考虑到不同的选择符之间的优先级。ID选择符,类选择符和HTML标记选择符,因为ID选择符是最后加上元素上的,所以优先级最高,其次是类选择符。如果想超越这三者之间的关系,可以用!important提升样式表的优先权,例如:[Copy to clipboard]CODE:p { color: #FF0000!important }.blue { color: #0000FF}#id1 { color: #FFFF00}我们同时对页面中的一个段落加上这三种样式,它最后会依照被!important申明的HTML标记选择符样式为红色文字。如果去掉!important,则依照优先权最高的ID选择符为黄色文字。7. 注释你可以在CSS中插入注释来说明你代码的意思,注释有利于你或别人以后编辑和更改代码时理解代码的含义。在浏览器中,注释是不显示的。CSS注释以"/*" 开头,以"*/" 结尾,如下:[Copy to clipboard]CODE:/* 定义段落样式表 */p{text-align: center/* 文本居中排列 */color: black/* 文字为黑色 */font-family: arial /* 字体为arial */}