阅读更多" />

CSS(内容服务交换器)

CSS(内容服务交换器)

CSS(内容服务交换器)

层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标準通用标记语言的一个套用)或XML(标準通用标记语言的一个子集)等档案样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。

CSS 能够对网页中元素位置的排版进行像素级精确控制,支持几乎所有的字型字号样式,拥有对网页对象和模型样式编辑的能力。

基本介绍

  • 中文名:内容服务交换器
  • 外文名:Content Services Switch
  • 功能:提供模组化设计等
  • 简称:CSS

发展历程

1990年,Tim Berners-Lee和Robert Cailliau共同发明了Web。1994年,Web真正走出实验室。 从HTML被发明开始,样式就以各种形式存在。不同的浏览器结合它们各自的样式语言为用户提供页面效果的控制。最初的HTML只包含很少的显示属性。 随着HTML的成长,为了满足页面设计者的要求,HTML添加了很多显示功能。但是随着这些功能的增加,HTML变的越来越杂乱,而且HTML页面也越来越臃肿。于是CSS便诞生了。 1994年哈坤·利提出了CSS的最初建议。而当时伯特·波斯(
Bert Bos)正在设计一个名为Argo的浏览器,于是他们决定一起设计CSS。 其实当时在网际网路界已经有过一些统一样式表语言的建议了,但CSS是第一个含有“层叠”丰意的样式表语言。在CSS中,一个档案的样式可以从其他的样式表中继承。读者在有些地方可以使用他自己更喜欢的样式,在其他地方则继承或“层叠”作者的样式。这种层叠的方式使作者和读者都可以灵活地加入自己的设计,混合每个人的爱好。 哈坤于1994年在芝加哥的一次会议上第一次提出了CSS的建议,1995年的www网路会议上CSS又一次被提出,博斯演示了Argo浏览器支持CSS的例子,哈肯也展示了支持CSS的Arena浏览器。 同年,W3C组织(
World WideWeb Consortium)成立,CSS的创作成员全部成为了W3C的工作小组并且全力以赴负责研发CSS标準,层叠样式表的开发终于走上正轨。有越来越多的成员参与其中,例如微软公司的托马斯·莱尔顿(Thomas Reaxdon),他的努力最终令Internet Explorer浏览器支持CSS标準。哈坤、波斯和其他一些人是这个项目的主要技术负责人。1996年底,CSS初稿已经完成,同年12月,层叠样式表的第一份正式标準(
Cascading style Sheets Level 1)完成,成为w3c的推荐标準。 1997年初,W3C组织负责CSS的工作组开始讨论第一版中没有涉及到的问题。其讨论结果组成了1998年5月出版的CSS规範第二版。

编程开发

编程工具 记事本:使用Windows系统自带的记事本可以编辑网页。只需要在保存文档时,以.html为后缀名进行保存即可。 Dreamweaver:它与Flash、Fireworks并称网页三剑客。Dreamweaver是集网页製作和管理网站于一身的所见即所得网页编辑器,它是第一套针对专业网页设计师特别开发的视觉化网页开发工具,利用它可以轻而易举地製作出充满动感的网页。

语言特点

CSS为HTML标记语言提供了一种样式描述,定义了其中元素的显示方式。CSS在Web设计领域是一个突破。利用它可以实现修改一个小的样式更新与之相关的所有页面元素。 总体来说,CSS具有以下特点: (1)丰富的样式定义 CSS提供了丰富的文档样式外观,以及设定文本和背景属性的能力;允许为任何元素创建框线,以及元素框线与其他元素间的距离,以及元素框线与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。 (2)易于使用和修改 CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS档案中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。 另外,可以将相同样式的元素进行归类,使用同一个样式进行定义,也可以将某个样式套用到所有同名的HTML标籤中,也可以将一个CSS样式指定到某个页面元素中。如果要修改样式,我们只需要在样式列表中找到相应的样式声明进行修改。 (3)多页面套用 CSS样式表可以单独存放在一个CSS档案中,这样我们就可以在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面档案,在任何页面档案中都可以将其引用。这样就可以实现多个页面风格的统一。 (4)层叠 简单的说,层叠就是对一个元素多次设定同一个样式,这将使用最后一次设定的属性值。例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表套用到页面中。这些后来定义的样式将对前面的样式设定进行重写,在浏览器中看到的将是最后面设定的样式效果。 (5)页面压缩 在使用HTML定义页面效果的网站中,往往需要大量或重複的表格和font元素形成各种规格的文字样式,这样做的后果就是会产生大量的HTML标籤,从而使页面档案的大小增加。而将样式的声明单独放到CSS样式表中,可以大大的减小页面的体积,这样在载入页面时使用的时间也会大大的减少。另外,CSS样式表的复用更大程式的缩减了页面的体积,减少下载的时间。

优势

网页 网页的读者和作者都可以使用CSS来决定档案的颜色、字型、排版等显示特性。CSS 最主要的目的是将档案的内容与显示分隔开来。这有许多好处: 档案的可读性加强; 档案的结构更加灵活; 作者和读者可以自己决定档案的显示; 档案的结构简化了; 另外,在 HTML 中: 一个整个网站或其中一部分网页的显示信息被集中在一个地方,要改变它们很方便。不同的读者可以有不同的样式,比如有的读者需要字型比较大。HTML 档案本身的範围变小了,它的结构简单了,它不需要包含显示的信息。CSS 还可以控制其他参数,例如声音(假如浏览器有阅读功能的话)或给视障者用的感受装置。

缺点

CSS 明显的缺点包括:
浏览器不同的支持 浏览器对 CSS 的支持没有统一,造成不同的浏览器显示效果不同。例如在微软Internet Explorer的旧版本 6.0,有许多独有的 CSS 2.0 属性,但错误显示很多重要的属性,例如:width,height,和float。许多 CSS 编写人员为了儘可能在常用的各个浏览器中达到一致的版面编排,要写很多针对各个浏览器的不同的 CSS 代码。当版面编排很複杂时,要在各个浏览器里获取相同效果是不可能的。
CSS 没有父选择器 CSS 选择器无法提供元素的继承性。先进的选择器(例如XPath)有助于複杂的样式设计。然而,浏览器的性能和增加渲染的问题,关係着父层选择器,却是 CSS 的工作组拒绝建议的主要原因。

而CSS4则计画包括类似功能。
不能明确地指定继承性 样式的继承性,创建在浏览器中 DOM 元素的层级和具体的规则上。
垂直控制的局限 元素的水平放置普遍地易于控制,垂直控制则不然。简单来说,垂直地围绕一个元素、页脚的放置不能高于可见视窗(viewport,视窗或萤幕的可见範围)的底部範围。这需要複杂的样式规则,或是规则简单,但不被广泛支持。
没有算术功能 直至 CSS 2.1 的 CSS 没有办法明确简单地进行计算(例如:margin-left: 10% – 3em + 4px;)。计算功能在很多情况下都是非常有用的,例如:总栏位中计算栏位的尺寸限制。

工作原理

CSS是一种定义样式结构如字型、颜色、位置等的语言,被用于描述网页上的信息格式化和现实的方式。CSS样式可以直接存储于HTML网页或者单独的样式单档案。无论哪一种方式,样式单包含将样式套用到指定类型的元素的规则。外部使用时,样式单规则被放置在一个带有档案扩展名_css的外部样式单文档中。 样式规则是可套用于网页中元素,如文本段落或连结的格式化指令。样式规则由一个或多个样式属性及其值组成。内部样式单直接放在网页中,外部样式单保存在独立的文档中,网页通过一个特殊标籤连结外部样式单。 名称CSS中的“层叠(cascading)”表示样式单规则套用于HTML文档元素的方式。具体地说,CSS样式单中的样式形成一个层次结构,更具体的样式覆盖通用样式。样式规则的优先权由CSS根据这个层次结构决定,从而实现级联效果。

语言基础

属性和属性值

属性 属性的名字是一个合法的标识符,它们是CSS语法中的关键字。一种属性规定了格式修饰的一个方面。例如:color是文本的颜色属性,而text-indent则规定了段落的缩进。 要掌握一个属性的用法,有六个方面需要了解。具体叙述如下: ①该属性的合法属性值(
legal value)。显然段落缩进属性text-indent只能赋给一个表示长度的值,而表示背景图案的background.image属性则应该取一个表示图片位置连结的值或者是关键字none表示不用背景图案。 ②该属性的默认值(
initial value)。当在样式表单中没有规定该属性,而且该属性不能从它的父级元素那儿继承的时候,则浏览器将认为孩属性取它的默认值。 ③该属性所适用的元素(
Applies to)。有的属性只适用于某些个别的元素,比如white-space属性就只适用于块级元素。white-space属性可以取normal、pre和nowrap三个值。当取normal的时候,浏览器将忽略掉连续的空白字元,而只显示一个空白字元。当取pre的时候,则保留连续的空白字元。而取nowrap的时候,连续的空白字元被忽略,而且不自动换行。 ④该属性的值是否被下一级继承(
inherited)。 ⑤如果该属性能取百分值(
percentage),那幺该百分值将如何解释。也就是百分值所相对的标準是什幺。如margin属性可以取百分值,它是相对于margin所存元素的容器的宽度。 ⑥该属性所属的媒介类型组(
media groups)。
属性值 ①整数和实数 这和普通意义上的整数和实数没有多大区别。在CSS中只能使用浮点小数,而不能像其他程式语言那样使用科学记数法表示实数,即1.2E3在CSS中将是不合法的。下面是几个正确的例子,整数:128、-313,实数:12.20、1415、-12.03。 ②长度量 一个长度量由整数或实数加上相应的长度单位组成。长度量常用来对元素定位。而定位分为绝对定位和相对定位,因而长度单位也分为相对长度单位和绝对长度单位。 相对长度单位有:em——当前字型的高度,也就是font.size属性的值;ex——当前字型中小写字母x的高度;Dx——一个像素的长度,其实际的长度由显示器的设定决定,比如在800木600的设定下,一个像素的长度就等于萤幕的宽度除以800。 另一一点值得注意的是,子级元素不继承父级元素的相对长度值,只继承它们的实际计算值。 ③百分数量(
percentages) 百分数量就是数字加上百分号。显然,百分数量总是相对的,所以和相对长度量一样,百分数量不被子级元素继承。

选择器

类型选择器 CSS中的一种选择器是元素类型的名称。使用这种选择器(称为类型选择器),可以向这种元素类型的每个实例上套用声明。例如,以下简单规则的选择器是H1,因此规则作用于文档中所有的H1元素:

1 H1{color:red}

简单属性选择器
CLASS属性 CLASS属性允许向一组在CLASS属性上具有相同值的元素套用声明。BODY内的所有元素都有CLASS属性。从本质上讲,可以使用CLASS属性来分类元素,在样式表中创建规则来引用CLASS属性的值,然后浏览器自动将这些属性套用到该组元素。 类选择器以标誌符(
句点)开头,用于指示后面是哪种类型的选择器。对于类选择器,之所以选择句点是因为在很多程式语言中它与术语“类”相关联。翻译成英语,标誌符表示“带有类名的元素”。
ID属性 ID属性的操作类似于CLASS属性,但有一点重要的不同之处:ID属性的值在整篇文档中必须是唯一的。这使得ID属性可用于设定单个元素的样式规则。包含ID属性的选择器称为ID选择器。 需要注意的是,ID选择器的标誌符是散列符号(
#)。标誌符用来提醒浏览器接下来出现的是ID值。
STYLE属性 儘管在选择器中可以使用CLASS和ID属性值,STYLE属性实际上可以替代整个选择器机制。不是只具有一个能够在选择器中引用的值(这正是ID和CLASS具有的值),STYLE属性的值实际上是一个或多个CSS声明。 通常情况下,使用CSS,设计者将把所有的样式规则置于一个样式表中,该样式表位于文档顶部的STYLE元素内(
或在外部进行连结)。但是,使用STYLE属性能够绕过样式表将声明直接放置到文档的开始标记中。
组合选择器类型 可以将类型选择器、ID选择器和类选择器组合成不同的选择器类型来构成更複杂的选择器。通过组合选择器,可以更加精确地处理希望赋予某种表示的元素。例如,要组合类型选择器和类选择器,一个元素必须满足两个要求:它必须是正确的类型和正确的类以便使样式规则可以作用于它。
外部信息:伪类和伪元素 在CSS1中,样式通常是基于在HTML原始码中出现的标记和属性。对于很多设计情景而言这种做法完全可行,但是它无法实现设计者希望获得的一些常见的设计效果。 设计伪类和伪元素可以实现其中的一些效果。这两种机制扩充了CSS的表现能力。在CSS1中,使用伪类可以根据一些情况改变文档中连结的样式,如根据连结是否被访问,何时被访问以及用户和文档的互动方式来套用改变。藉助于伪元素,可以更改元素的第一个字母和第一行的样式,或者添加源文档中没有出现过的元素。 伪类和伪元素都不存在于HTML;也就是说,它们在HTML代码中是不可见的。这两种机制都得到了精心设计以便能够在CSS以后的版本中做进一步地扩充;也就是说实现更多的效果。

语言标準

在CSS 2.1规範中,识别符(包括选择符中的元素名、类、ID)只能包含A~Z、a~z、0~9等字元,加上连字元“-”、下划线“_”。识别符不能以数字开头,以连字元和下划线开头也是不允许的。只有属性、属性值、单位、伪类、伪元素和“@”规则可以由连字元“-”开头。同时,其他元素名称、类和ID标识符也不允许用连字元开头。 CSS的识别符也需要用反斜槓“\”规避特殊字元,这些规避字元遵循IS010646规範。特殊字元的规避方法有两种:第一种方法是遇到特殊字元则在这些字元前直接添加反斜槓,例如,“AT&T”变为“AT\&T”;另一种方法为用反斜槓和Unicode或IS010646等值的十六进制数值一起,规避特殊字元,例如,“AT&T”变为“AT\26T”。

技术套用

在HTML档案里加一个超级连结, 引入外部的 CSS 文档。这个方法最方便管理整个网站的网页风格, 它让网页的文字内容与版面设计分开。只要在一个CSS文档内(
扩展名为 CSS) 定义好网页的风格,然后在网页中加一个超级连结连线到该文档,那幺网页就会按照在CSS文档内定义好的风格显示出来。

语言评价

层叠样式表(
Cascading Style Sheet,CSS)有助于实现负责任的Web设计。CSS对开发者构建Web站点的影响很大,并且这种影响可能是无止境的。将网页的大部分甚至是全部的表示信息从(
X)HTML档案中移出,并将它们保留在一个样式表中有诸多优点,如降低档案大小、节省网路频宽以及易于维护等。此外,站点的表现信息和核心内容相分离,使得站点的设计人员能够在短暂的时间内对整个网站进行各种各样的修改。 CSS简化了网页的格式代码,外部的样式表还会被浏览器保存在快取里,加快了下载显示的速度,也减少了需要上传的代码数量(
因为重複设定的格式将被只保存一次)。只要修改保存着网站格式的CSs样式表档案就町以改变整个站点的风格特色,在修改页面数量庞大的站点时,显得格外有用。这就避免了一个个网页的修改,大大减少了工作量。