JSP程序设计实训与案例教程(第2版)
上QQ阅读APP看书,第一时间看更新

3.3 CSS基础知识

任何Web网站的开发通常都包含两方面内容,即站点的外观设计和站点的功能实现,而成功的网站应该在这两方面保持平衡,既设计美观,又方便实用。站点的外观设计包括页面和控件的外观样式、背景色、前景色、字体、网页布局等,如果通过HTML的各种标签及其属性实现满足要求的外观,编码实在是太复杂、太臃肿,而CSS可以助你一臂之力。

级联样式表(Cascading Style Sheets, CSS)是一种设计网页样式的工具,借助CSS的强大功能,网页将在你丰富的想象力下千变万化。

CSS是W3C为了弥补HTML在显示属性设定上的不足而制定的一套扩展样式标准,其重新定义了HTML中的文字显示样式,并增加了一些新的概念,如类、层等,可以实现文字重叠、定位等。CSS还允许将样式定义单独存储在样式文件中,将显示的内容和显示的样式定义分离,使在保持HTML简单明了的初衷的同时能够对页面的布局施加更多的控制,避免代码的冗余,使网页体积更小,下载更快。另外,也可以将多个网页链接到同一个样式文件,从而为整个网站提供一个统一、通用的外观,并且也使多个具有相同样式表的网页可以简单快速地同时更新。

3.3.1 CSS样式表定义

在网页制作过程中,定义样式表的方法主要有下面三种。

1.通过HTML标签定义样式表

CSS样式表的基本语法如下:

     引用样式的对象{标签属性:属性值;标签属性:属性值;标签属性:属性值;…}

(1)引用样式的对象:指的是需要引用该样式的HTML标签,可以是一个或多个标签(各个标签之间用逗号分开),需要注意的是,这里使用的是去掉尖括号的标签名。例如,p、table等,而不是<p>、<table>。

(2)标签属性:属性值——这是一一对应的,每个属性与属性值对之间用分号隔开。要说明的是,CSS的属性设置与脚本语言中的属性设置有一点不同,即属性名称的写法不同。在CSS中,凡属性名为两个或两个以上的单词构成时,单词之间以“-”隔开,如背景颜色属性background-color。

例如,“<h1></h1>标签和<h2></h2>标签内的文本居中显示,并采用蓝色字体”的样式表为

     h1,h2{text-align:center;color:blue}

2.使用id定义样式表

在HTML页面中id选择符用来对某个单一元素定义单独的样式,定义id选择符要在id名称前加上一个#号。使用id定义样式表的基本语法如下:

     #id名称{标签属性:属性值;标签属性:属性值;标签属性:属性值;…}

使用时只需将要用该样式的网页内容前加一个id="id名称"。

例如:

     #sample{font-family:宋体;font-size:60pt}
     <p id=sample>段落文本</p>

这样就可以使<p></p>标签对内的文本以sample样式显示。

3.使用class定义样式表

若要为同一元素创建不同的样式或为不同元素创建相同的样式,可以使用CSS类。CSS类有两种定义格式,定义时,在自定义类的名称前面加一个点号。

1)标签名.类名{标签属性:属性值;标签属性:属性值;标签属性:属性值;…}

这种格式的类指明所定义的样式只能用在类名前所指定的标签上。

例如:

     h1.center{text-align:center}

该center类的样式只能用在<h1>标签上。

2).类名{标签属性:属性值;标签属性:属性值;标签属性:属性值;…}

这种格式的类使所有class属性值为该类名的标签都遵循该类所定义的样式。

例如:

     .text{font-family:宋体;color:red;}
     <p class="text">段落文本</p>

<p></p>标签对使用text类使标签中的文本字体为宋体,颜色为红色。

3.3.2 HTML中加入CSS的方法

在HTML中加入CSS的方法主要有三种:嵌入式样式表、内联式样式表、外联式样式表。三种方法各有妙用,主要的区别在于它们规定风格的使用范围不同,下面分别对三种方法做简单介绍。

1.嵌入式样式表

嵌入式样式表很简单,只要在需要应用样式的HTML标签上添加CSS属性就可以了,这种方法主要用于对具体的标签做具体的样式设置,其作用范围只限于本标签。

例如:

     <p style="color:red;font-size:10pt">使用嵌入式样式表</p>

这个样式表只是让当前的<p></p>标签对中的文字为红色,字体大小为10pt。

2.内联式样式表

内联式样式表利用<style></style>标签对将样式表定义在HTML文档的<head></head>标签对之间,内联式样式表的作用范围是本HTML文档。

例3-14】 内联式样式表实例(style1.html)。

运行效果如图3-11所示。

图3-11 内联式样式表实例运行效果

(1)<style></style>用来说明其标签中的代码用于定义样式表。

(2)<style>标签的type属性用于指明样式的类别,默认值为text/css,允许不支持CSS的浏览器忽略样式表。

(3)<!--和-->是注释标签。

3.外联式样式表

外联式样式表是将定义好的CSS单独放到一个以css为扩展名的纯文本文件中,再使用<link>标签链接到网页中。

这种方法的最大好处是,定义一个样式可以用到大量网页中,从而使整个站点风格保持一致,避免重复的CSS属性设置。另外,当遇上站点改版或某些重大调整要对风格进行修改时,可直接修改CSS文件,而不用打开每个网页进行修改。

例3-15】 外联式样式表实例。

(1)创建样式表StyleSheet.css。

StyleSheet.css代码如下:

     p{
         background-color:yellow;color:blue;font-style:italic
     }
     .text{
         font-family:宋体;font-size:20pt;text-decoration:underline
     }

(2)在网页上引用样式表(style2.html)。

     <html>
         <head>
             <title>外联式样式表实例</title>
             <meta http-equiv="Content-Type"content="text/html;charset=UTF-8">
             <link href="StyleSheet.css"rel="stylesheet"type="text/css"/>
         </head>
         <body>
             <h1 class="text">本标题文字字体大小为20磅,有下画线</h1>
             <p>本段文字背景颜色为黄色,字体颜色为蓝色,斜体</p>
         </body>
     </html>

运行效果如图3-12所示。

图3-12 外联式样式表实例运行效果

(1)<link>标签中的rel="stylesheet"指明此处链接的元素是一个样式表,该值一般不需要改动。

(2)<link>标签中的href属性用来设置需要链接的样式表文件地址。

3.3.3 CSS的优先级

CSS是级联样式表,级联是指继承性,即在标签中嵌套的标签继承外层标签的样式。级联的优先级顺序是嵌入式样式表(优先级最高)、内联式样式表、外联式样式表、浏览器默认(优先级最低)。当样式表继承遇到冲突时,总是以最后定义的样式为准。

例如:

     <div style="color:blue;font-size:20pt">
         <p style="font-size:25pt">段落文本</p>
     </div>

因为<p></p>标签对嵌套在<div></div>标签对之间,所以,<p></p>标签对中的文本内容样式将继承<div>样式设置,文字颜色是蓝色。又font-size属性值继承后发生冲突,所以,以最后定义的<p>属性值为准,字体大小为25pt。

3.3.4 CSS基本属性

从CSS定义的基本语法可以看出,属性是CSS非常重要的部分,熟练掌握各种属性将会使页面编辑更加得心应手,下面介绍几种主要的属性。

1.字体属性

基本字体属性简介如表3-2所示。

表3-2 字体属性简介

例如:

     • h2{font-family:helvetica,impact,sans-serif}

Web浏览器阐释样式表的规则:首先在列表中寻找字体的名称(helvetica),如果在该计算机中安装了这种字体,就使用它;如果没有安装,则移向下一种字体(impact);如果这种字体也没有安装,则移向第三种字体(sans-serif)。

     • h1{font-style:oblique}
     • span{font-variant:small-caps}

当文字中所有字母都是大写的时候,小型大写字母(值)会显示比小写字母稍大的大写字符。

     • p{font-weight:800}
     • h3{font-size:large}
       h4{font-size:12pt}
       h5{font-size:90%}
       h6{font-size:larger}

2.颜色和背景属性

颜色和背景属性简介如表3-3所示。

表3-3 颜色和背景属性简介

例如:

     • b{color:#333399}
       b{color:rgb(51,204,0)}
       b{color:blue}
     • b{background-image:url(background.gif)}
       p{background-repeat:no-repeat;background-image:
       url(http://www.zzuli.com/images/bg.gif)}
       p{background:url(sample.jpg)no-repeat}

3.文本属性

文本属性简介如表3-4所示。

表3-4 文本属性简介

例如:

     p{letter-spacing:1em;text-align:justify;text-indent:4em;line-height:17pt}

该CSS样式设置字间距为1em,文本水平对齐方式为两端对齐,文本首行缩进为4em,行高为17pt。

4.分级属性

通过CSS提供的分级属性,人们能实现“项目符号和编号”功能,表3-5对分级属性进行了简单介绍。

表3-5 分级属性

例如:

     • p{display:block;white-space:normal}
     • ol{list-style-type:upper-alpha}

项目编号为A B C D E …

       ol{list-style-type:decimal}

项目编号为1 2 3 4 5 …

       ol{list-style-type:lower-roman}

项目编号为i ii iii iv v …

     • ul.check{list-style-image:url(sample.gif)}
     • li.square{list-style:square inside}

5.鼠标属性

通过改变cursor属性,可以使鼠标移动到不同的元素对象上时显示不同的形状,例如,若链接目标为帮助文件,则可以使用帮助形式的鼠标;若想告诉用户网页哪里可以单击,那么只要在页面上特定的位置让鼠标变成手形,用户就会辨认出页面上的活动区域。cursor属性值及其含义如表3-6所示。

表3-6 cursor属性值及其含义

例如:

     • <span style="cursor:wait">等待</span>

设置鼠标属性为“等待”。

     • <span style="cursor:help">帮助</span>

设置鼠标属性为“帮助”。