吕梁高等专科学校汾阳师范分校12020年2月26日网站规划与网页设计王建平fysfwjp@163.com25.1CSS的特点和用途5.2在网页中插入CSS5.3class与id类选择符5.4div与span标记5.5多重CSS的层叠5.6CSS的属性单位第5章网页样式表CSS3CSS(CascadingStyleSheets)中文翻译为层叠样式表单,简称样式表,是用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。样式就是格式,在网页中,文字的大小、色彩及图片位置等,都是设置显示内容的样式。层叠是指在HTML文档中引用多个定义样式的样式文件(CSS文件)时,若多个样式文件间所定义的样式发生冲突,将依据层次顺序处理。它的主要用途如下所述。使页面的字体变得更漂亮,更容易编排,使页面效果真正达到赏心悦目。用户可以轻松地控制页面的整体风格和布局。如果站点上所有的页面都使用同一个CSS文件进行控制,那么可以对许多网页的风格格式同时进行更新,不用再一页一页地更新了。只要修改这个CSS文件中相应的代码,整个站点的所有页面都会随之发生变动。5.1CSS的特点和用途4CSS控制网页内容显示格式的方式是通过许多定义好的样式属性(如字号、段落控制等)来实现的,并将多个样式属性定义为一组可供调用的选择符(selector)。其实,选择符就是某一个样式的名称。当HTML文档中某个元素要使用该样式时,必须使用该名称选择样式。在这里使用选择符这个名词的原因,是为了与W3C标准统一,其实可以直接把它当成样式名称,这样会比较好理解。要想在浏览器中显示出样式表的效果,就要让浏览器识别并调用。当浏览器读取样式表时,要依照文本格式来读。这里介绍4种在页面中插入样式表的方法:内部样式、行内样式、链入外部样式和导入外部样式。5.2在网页中插入CSS55.2.1内部样式内部样式(embeddedstyles)是把样式表放到页面的head…/head区内,这些定义的样式就可以应用到页面中了。样式表是用style标记插入的。定义的样式可以在整个HTML文档中调用。可以在HTML文档的html和body标记之间插入一个style…/style标记对,在其中定义样式。其格式为:styletype=text/css!--选择符1{属性:属性值;属性:属性值…}/*注释内容*/选择符2{属性:属性值;属性:属性值…}…选择符n{属性:属性值;属性:属性值…}--/style5.2在网页中插入CSS【例5-1】65.2.2行内样式行内样式(inlinestyles)也称内嵌样式,是指在HTML标记中插入style属性,再定义要显示的样式,而style属性的内容就是CSS的属性和值。用这种方法,可以很简单地对某个标记单独定义样式。它的特点是——“定义某一个标记的样式风格”,即只对所定义的标记起作用,并非对整个页面起作用。有时候这种方式非常有效,其格式为:标记style=“属性:属性值;属性:属性值…”style属性可以应用于除basefont,param和script之外的任意body标记(包括body本身)。5.2在网页中插入CSS【例5-2】75.2.3链入外部样式链入外部样式(linkedstyles)就是当浏览器读取到HTML文档的样式表链接标记时,将向所链接的外部样式表索取样式。先将样式表保存为一个样式表文件(.css),然后在网页中用link标记链接这个样式表文件,这个link标记必须放到页面的head…/head区内,其格式为:head…linkrel=stylesheethref=外部样式表文件名.csstype=text/css/…/headrel=stylesheet属性定义在网页中使用外部的样式表,type=text/css属性定义文件的类型为样式表文本,href属性用于定义.css文件的URL。5.2在网页中插入CSS【例5-3】85.2.4导入外部样式导入外部样式(importedstyles)就是当浏览器读取HTML文件时,复制一份样式表到这个HTML文件中,即在内部样式表的style标记对里导入一个外部样式表文件。其格式为:styletype=text/css!--@importurl(外部样式表的文件名1.css);@importurl(外部样式表的文件名2.css);其他样式表的声明--/style导入外部样式表输入方式上更有优势,实质上它相当于内部样式。5.2在网页中插入CSS【例5-4】95.3.1用类(class)选择符定义样式用类选择符能够把相同的标记分类定义为不同的样式。例如,希望同一种标记(如p)在不同的地方使用不同的样式(一个段落向右对齐,一个段落居中),就可以先定义两个类,在应用时只要在标记中指定它属于哪一个类,就可以使用该类的样式了。其格式为:styletype=text/css!--标记1.类名称1{属性:属性值;属性:属性值…}标记2.类名称2{属性:属性值;属性:属性值…}…标记3.类名称n{属性:属性值;属性:属性值…}--/style5.3class与id类选择符105.3.1用类(class)选择符定义样式还有一种用法,是在选择符中省略HTML“标记”名,这样可以把几个不同的元素定义成相同的样式。其格式为:styletype=text/css!--.类名称1{属性:属性值;属性:属性值…}.类名称2{属性:属性值;属性:属性值…}….类名称n{属性:属性值;属性:属性值…}--/style有无“标记”的区别在于,若在定义类选择符前加上HTML标记,其适用范围将只限于该标记所包含的内容。这种省略HTML标记的类选择符是最常用的定义方法,使用这种方法,可以很方便地在任意标记上套用预先定义好的类样式。5.3class与id类选择符115.3.2用id选择符定义样式id选择符用来对某个单一元素定义单独的样式。定义id选择符时要在id名称前加上一个“#”号。与类选择符相同,定义id选择符也有两种方法。第一种方法是用id选择符定义样式,格式为:styletype=text/css!--#id名1{属性:属性值;属性:属性值…}#id名2{属性:属性值;属性:属性值…}…#id名n{属性:属性值;属性:属性值…}--/style5.3class与id类选择符125.3.2用id选择符定义样式还有一种方法,是在选择符中加上HTML“标记”名,其格式为:styletype=text/css!--标记1#id名1{属性:属性值;属性:属性值…}标记2#id名2{属性:属性值;属性:属性值…}…标记n#id名n{属性:属性值;属性:属性值…}--/style“标记”是HTML的标记名称。若在id选择符前加上HTML的标记,其适用范围将只限于该标记所包含的内容。id选择符局限性很大,只能单独定义某个元素的样式,一般只在特殊情况下使用。5.3class与id类选择符135.4.1使用div标记div标记用来定义网页上的一个特定区域,在该区域的范围内可包含文字、图片、表格、窗体及其他div标记等。在div标记内的所有内容都将调用此标记所定义的样式,且区域与区域之间是彼此独立的。在定义区域间使用不同样式时,可使用div标记。div标记的格式为:divid=样式名.../div或divclass=样式名.../div5.4.2使用span标记div标记主要用来定义网页上的区域,通常用于比较大的范围;而span标记也可以用来定义区域,但一般用于网页中某一个小问题段落,其格式为:spanid=样式名.../span或spanclass=样式名.../span5.4div与span标记14前面介绍了在网页中插入样式表的4种方法,那么,当这4种方法同时出现时,浏览器会以哪种方法定义的规则为准呢?这就涉及了样式表的优先级别和叠加。一般原则是,最接近目标的样式定义优先级最高。高优先级样式将继承低优先级样式的未重叠定义,但覆盖重叠的定义。根据规定,样式表的优先级别从高到低为:行内样式、内部样式、链接样式、导入样式和默认浏览器样式。浏览器将按照上述顺序执行样式表的规则。样式表的层叠性就是继承性,样式表的继承规则是:外部的元素样式会保留下来,由这个元素所包含的其他元素继承;所有在元素中嵌套的元素都会继承外层元素指定的属性值,有时会把很多层嵌套的样式叠加在一起,除非另外更改;遇到冲突的地方会以最后定义的为准。5.5多重CSS的层叠155.6.1长度、百分比单位进行文字、排版、边界等设置时,常常会在属性值后加上长度单位或者百分比单位。1.长度单位长度单位有相对长度单位和绝对长度单位两种类型。相对长度单位是指以该属性前一个属性的单位值为基础,来完成目前的设置。绝对长度单位,将不会随着显示设备的不同而改变。换句话说,属性值使用绝对长度单位时,不论在哪种设备上显示都是一样的,例如,屏幕上的1cm与打印机上的1cm是一样长的。由于相对长度单位确定的是一个相对于另一个长度属性的长度,因而它能更好地适应不同的媒体,所以它是首选的。5.6CSS的属性单位165.6.1长度、百分比单位2.百分比单位百分比单位也是一种常用的相对类型。百分比值总是相对于另一个值来说的,该值可以是长度单位或其他单位。每一个可以使用百分比值单位指定的属性,同时也自定义了这个百分比值的参照值。在大多数情况下,这个参照值是该元素本身的字体尺寸。并非所有属性都支持百分比单位。一个百分比值由可选的正号“+”或负号“”,接着一个数字,后跟百分号“%”组成。如果百分比值是正的,正号可以不写。正负号、数字与百分号之间不能有空格。例如,p{line-height:150%}/*本段文字的高度为标准行高的1.5倍*/hr{width:80%}/*线段长度是相对于浏览器窗口的80%*/5.6CSS的属性单位175.6.2色彩单位1.用十六进制数表示色彩值在HTML中,要使用RGB概念指定色彩时,前面是一个“#”号,再加上6个十六进制的数字表示,表示方法为:#RRGGBB。其中,前两个数字代表红光强度(Red),中间两个数字代表绿光强度(Green),后两个数字代表蓝光强度(Blue)。以上三个参数的取值范围为:00~ff,参数必须是两位数。对于只有一位的参数,应在前面补0。这种方法共可表示256256256种色彩,即16M种色彩。而红色、绿色、蓝色、黑色、白色对应的十六进制数分别为:#ff0000、#00ff00、#0000ff、#000000、#ffffff。例如,div{color:#ff0000}如果每个参数各自在两位上的数字都相同,也可缩写为#RGB的方式。例如:#ff8800可以缩写为#f80。5.6CSS的属性单位185.6.2色彩单位2.用rgb函数表示色彩值在CSS中,可以用rgb函数设置出所要的色彩,语法格式为:rgb(R,G,B)。其中,R为红色值,G为绿色值,B为蓝色值。三个参数可取正整数值或百分数值,正整数值的取值范围为0~255,百分数值的取值范围为色彩强度的百分比0.0%~100.0%。例如,div{color:rgb(132,20,180)}div{color:rgb(12%,200,50%)}3.用色彩名称表示色彩值在CSS中也提供了与HTML一样的用色彩英文名称表示色彩的方式。CSS只提供了16种色彩名称。例如,div{color:red}5.6CSS的属性单位191.用CSS创建一个布局居中的页面,如图5-5所示。2.将段落p分成3部分,每一部分应用不同的样式表。请把下面代码补全,编写完整的HTML文件。CSS可设置为外部或内部样式表文件。样式规则为:p.first{color:green}p.second{color:pu