|
CSS 循序渐进教程
一、画个瓢
说起来现在介绍样式表的文章比较多了。其实真正用透样式表的人并不多,笔者也仅仅就敢说懂得了一点皮毛。大家不信?那下面我就来说说,本文主要也就是从语法和功能两大方面来说说前文都未提到的一些东西。
说到语法,似乎只有那些高深的程序语言才有,CSS也有吗?答案是肯定的,只不过没有其它语言那么复杂罢了。特别是它的id和class,完全可以说是C++语言中的类在网页上的再现。
它一般怎么使用呢?首先id部分是必须写在HTML头文件中的< STYLE>说明中的,一般就是把一段css代码用一个代号来表示,称为id说明部分。而在引用时就在对象后面加class=id号,来使用这些属性。浏览器会选择那些引用id的对象具有的属性来对其进行定义,从而可以缩短你的开发时间。而且代码也更易读一些。而相应的,class也有两种,一种是相关式的,可以给页面内的某一种tag使用;而另一种就是独立式的,即你定义的class可以给页面内的任意一个或多个tag使用。
空谈无益,笔者还是拿一些例子来向大家说明吧。大家不妨看看前文的几个例子,倘若我把它们合成一个,利用id将其表示出来,然后再在后面引用,效果将是一样的。
比如下面这一段,在第二章中曾经使用过的css.将其设定一个id:text1。 .text1{ text-align: left; font-size: 15pt; font-family: 隶书,宋体; letter-spacing: 3px color: navy; line-height: 12pt; text-indent: .5in; border: solid 1pt; }
然后你在后文中引用: < P CLASS="text1">你好,这另一个例子。< /P>
同样可以得到与第二章例子相同的效果。当然这个class可以多次使用,也可以给多个tag使用。比如< table>,< td>,< form>等等。
另一方面我想跟大家谈谈dhtml中扩充的一些css。比如说现在很多地方都在使用的滤镜(filter)功能。所谓滤镜,并不是对图像进行了什么处理,而是在浏览器中对使用了该属性的对象进行一定的修饰。现在能使用的滤镜有16个之多,这里并非一篇介绍DHTML的文章,所以笔者也不便赘述。不过可以就其中几个相当重要好用的给大家讲一讲。
1.阴影过滤器
这个东西的好处真是不得了,用文本实现图形的功能,怎能不诱人?不过由它处理而成的给对象制造的阴影,却并不是那么准确和形象。不过考虑到它超出一筹的“性价比”,还是值得考虑的。
具体的用法就是,在css描述符号({})内,加入阴影过滤器名和它该有的值。格式如下: {FILTER:DropShadow(Color=color,OffX=offx,OffY=offy,Positive=positive) 其中参数的含义为: color 颜色 Direction 阴影方向。方向角度的表示是从垂直方向开始,按顺时针方向,以45度为单位逐渐递增,缺省为225度。 参数描述: Color 十六进制RGB色彩值 OffX 可视化对象沿X轴的阴影偏移量,正值为右,负值为左 OffY 可视化对象沿Y轴的阴影偏移量,正值为下,负值为上 Positive 布尔值。缺省为非零值,表示用不透明像素创建阴影;假值(零值)使用透明像素创建阴影。
2.α-过滤器
这就是透明度的意思,用过photoshop的人恐怕对这个概念对最有感觉。而借助于css-p(定位css)中的“层”的帮助,就可以做出各种溶入效果;倘若利用javascript页面脚本语言,对滤镜的参数进行处理,就可以做出淡入淡出的效果来,这一点留给大家去思考吧。
α-过滤器的所有可选项: {FILTER:Alpha(Opacity=opacity,FinishOpacity=finishopacity,Style=style, StartX=startx,StartY=starty,FinishX=finishx,FinishY=finishy)} 稍微为大家解释一下参数的含义: Opacity:起始透明度; FinishOpacity:终止透明度; Style:风格; Startx,starty,finishx,finishy:作用域。
最后综合本章内容给大家留两个例子,效果如图。
第一个是一个阴影的例子。 < html> < head> < title>Untitled Document< /title> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < style type="text/css"> < !-- .text1 { position:relative;width:600;filter:shadow(color=blue,direction=135); color:#66ccff;font-size:48pt; font-family:"方正彩云繁体"} --> < /style> < /head>
< body bgcolor="#FFFFFF"> < div class="text1" align="center"> < p>CSS循序渐进< /p> < /div> < /body> < /html>
将中间的style改一下, .text1 { position:relative;width:600;filter:alpha(opacity=50,finish=100,startx=0,sta rty=0,finishx=200,finishy=200); color:#66ccff;font-size:48pt; font-family:"方正 彩云繁体"}
这就是关于透明度的一个效果。
这次就谈到这里吧,下章将继续为大家介绍一些style的特殊地方和一些小技巧。
二、字的艺术
说到CSS,笔者用的最多的还是它的排版和字型设计功能。因为网页嘛,最终还是要做给人家看的,要传递信息给对方的,所以不管怎么说,这种传递形式非常重要,具体说来,也就是字的控制和版面的控制。另外一个很重要的原因就是中文相当难处理,Windows自带的中文字库很少,而中文的美术效果又很难做,远不如英文那么随随便便写几个字就很舒服。所以借助CSS的帮助就更显得有必要。好,废话也不多说了。大家还是跟我一起看一看CSS到底对字能起些什么作用吧。
首先,给朋友们说说样式表关于字型的一些功能。总的说来,主要是字体(font)、大小(size)、字体粗细(Weight)、字体变形(Variant)、字体风格(Style)、修饰(Decoration)、Case(大小写)等等。下面笔者向大家详细介绍一下。请注意,本文所用的Style例子都是采用的调用外部文件的形式,且只是外部文件css1.css的内容,大家看的时候注意了。要是想使用它们,如上节所说的,在HTML文件的文件头说明部分中加入< LINK REL=STYLESHEET HREF="CSS1.CSS">就可以了。
好,下面先给大家看一个例子: P { text-align: left; font-size: 25pt; font-family: "隶书", "宋体"; letter-spacing: 3px; color:navy; line-height:30pt; text-indent: .5in; border: solid 2pt; }
链入网页以后出来的效果如下图:
现在就对上面这段代码进行详解。首先,P就是表示是对文件中的所有< p>< /p>容器中的内容进行的定义。大括号内就是对各项属性所规定的值。对于一个定义的格式往往是:
属性:值
中间以分号隔开。
Text-align:left表示段落是居左对齐,font-size:15pt,表示字体大小为15pt,font-family:隶书,宋体 表示所采用的字体。这里要说明一下,这里使用了几种字体,并分别用逗号隔开,表示第一、第二、第三字体,也就是说如果客户机的系统内有第一种字体的话就采用它,如果没有再查看有没有第二种,第三种,倘若都没有则使用缺省字体。letter-spacing:3px就说明字间宽为3px.color:navy,则表示颜色为天蓝色,line-height:12pt表示行高为12pt(这里的行高是连同字高一起计算的)。text-indent:.5in表示段落首行的缩进的多少,这里是.5in.border:solid 1pt表示边框是宽度为1pt的实心边框。
大家对照一下图看看属性与效果之间的关系。看看写Style是不是很简单呢?有关字体和排版的属性还有几项,下面就列表向大家说明。
字体参数(Font Properties):
|
参数 |
含义 |
举例 |
|
Font-size |
字体大小 |
Small,midium |
|
Font-Style |
字体风格 |
Normal,italic |
|
Font-family |
选用字体 |
宋体,fantasy |
|
Font-weight |
字体粗细 |
Bold,bolder |
文本参数(Text Properties):
|
参数 |
含义 |
举例 |
|
Line-Height |
行距 |
1.2,18pt |
|
Text-decoration |
文字装饰 |
underline,none |
|
Text-transform |
大小写转换 |
Capitalize(单词首字母大写)
Uppercase(全部大写)
Lowercase(全部小写) |
|
Text-align |
文字对齐 |
Left,right,center,justify |
|
Text-indent |
文字缩进 |
长度值,百分比值 |
块参数(Block-Level Formatting Properties)
|
参数 |
含义 |
举例 |
|
Left-margin,right-margin |
留的空白 |
长度值,百分比值 |
|
Padding-top… |
内容边框间距 |
长度值,百分比值 |
|
Border-width |
边框宽度 |
长度值 |
|
Border-style |
边框风格 |
Solid,double,groove |
|
Border-color |
边框颜色 |
颜色值 |
|
Width |
宽度 |
长度值,百分比值 |
|
Float |
对齐 |
Left,right |
颜色参数(Color and Background Properties)
|
参数 |
含义 |
举例 |
|
Color |
前景色彩 |
颜色值(red, #FF0000) |
|
Background-image |
背景文件 |
文件地址 |
|
Background-color |
背景颜色 |
颜色值 |
三、样式“表”秀——介绍样式表中表格与表单的定制
不知道大家看完前面两篇以后是否对用style已经有了一点心得,其实前文所说的不过是样式表最基本的运用。笔者这里想问一问,读者们有没有感觉到html中所规定的那些标准形式的表格(table)和表单(form)样子过于呆板,而风格又时常与自己网页格格不入呢?而且,对于一个大信息量和交互式的网页而言,表格和表单是需要大量运用并且占有很重要的位置的。现在如果笔者告诉大家用样式表定制自己个人风格的表单和表格的话,您是否会兴奋得跳起来呢?其实,如果恰当的运用style,甚至可以做出比作图更好的效果来。
先给大家说说关于定制表格的一些细节。在第一章里的那个例子里,大家应该看到了许多运用定制表格的地方。应该说定制表格并不复杂,主要的也就是对背景(background)和边框(border)进行定义。用的也不过是这两方面的属性。
块参数(Block-Level Formatting Properties)
|
参数 |
含义 |
举例 |
|
Left-margin,right-margin |
留的空白 |
长度值,百分比值 |
|
Padding-top… |
内容边框间距 |
长度值,百分比值 |
|
Border-width |
边框宽度 |
长度值 |
|
Border-style |
边框风格 |
Solid,double,groove |
|
Border-color |
边框颜色 |
颜色值 |
|
Width |
宽度 |
长度值,百分比值 |
|
Float |
对齐 |
Left,right |
颜色参数(Color and Background Properties)
|
参数 |
含义 |
举例 |
|
Color |
前景色彩 |
颜色值(red, #FF0000) |
|
Background-image |
背景文件 |
文件地址 |
|
Background-color |
背景颜色 |
颜色值 |
|
background-attachment |
背景是否依附 |
scroll(随内容滚动)和fixed(固定位置) |
|
background-repeat |
背景重复格式 |
repeat-x(水平重复)
,repeat-y(纵向重复),no-repeat(不重复) |
说起来这些属性在上次介绍文字排版的时候也用过了,不过您这次再看看它在表格里的表现,它们在这里扮演的角色非常重要,笔者决非是简单的老调重弹。需要说明的是所有的边框属性都是分位置的,也就是说,可以对外观的上、下、左、右四个方向分别作设定,也就是说,对于每一项边框属性,都有border-left-width,border-right-width,border-top-width,border-bottom-width这样的四个分属性,也可以在某个属性后面连带四个值,分别表示对top、right、bottom、left的定义。这一点很有用,我们就可以运用它,做出类似光影的效果。而另外一个属性,所谓风格(style)就很难定义了。有些说法,比如说solid(实心),double(双层)很好理解。但是有些效果恐怕要您用过以后才能明白是怎么回事。这里笔者把它们全部列举如下:
dotted、dashed、solid、double、groove、ridge、inset、outset。
下面有一个专门的关于表格的例子,大家看看,效果如图一
源码如下: < html>
< head>
< title>Untitled Document< /title>
< meta http-equiv="Content-Type" content="text/html;
charset=gb2312">
< style type="text/css">
< !--
table { font-family: "宋体"; font-size: 9pt; color:
#000033; text-decoration: none; background-color:
#FFCCCC; padding-top: 4px; padding-right: 3px; padding-
bottom: 2px; padding-left: 2px; border: #CCCCFF;
border-style: groove; border-top-width: thick; border-
right-width: thick; border-bottom-width: thick; border-
left-width: thick}
-->
< /style>
< /head>
< body bgcolor="#FFFFFF">
< table width="75%" border="1" cellspacing="1"
cellpadding="1" align="center">
< tr bgcolor="#CCFFCC" bordercolor="#0000CC"
valign="middle" align="center">
< td>一< /td>
< td>二< /td>
< td>三< /td>
< td>四< /td>
< /tr>
< tr bgcolor="#CCFFCC" bordercolor="#0000CC"
valign="middle" align="center">
< td>a< /td>
< td>b< /td>
< td>c< /td>
< td>d< /td>
< /tr>
< tr bgcolor="#CCFFCC" bordercolor="#0000CC"
valign="middle" align="center">
< td>甲< /td>
< td>乙< /td>
< td>丙< /td>
< td>丁< /td>
< /tr>
< tr bgcolor="#CCFFCC" bordercolor="#0000CC"
valign="middle" align="center">
< td>A< /td>
< td>B< /td>
< td>C< /td>
< td>D< /td>
< /tr>
< /table>
< /body>
< /html>
至于表单,由于网页的交互性越来越被人们重视,表单的运用也越来越多。可是HTML本身所制定的那些标准形式的表单件的样子实在让人不敢恭维。文本框一律是内部深陷的长条,而按钮又全是那种灰灰的块块,放在一个精致的网站中实在不成样子。所以可以说适当的调整边框大小、颜色,做出符合网站个性的表单也是网站成功的一环吧。
大家要看效果的话可以借鉴一下fanso的打开音乐(http://music.fanso.com)的例子。(也可以看图二)大家注意看它右边的一排输入框,其实它是将输入框做到最小了,但是味道却反而足了。
用到的定义语句其实很简单: .input1 {
BACKGROUND-COLOR: #e8e8e8; BORDER-BOTTOM:
#a8a8a8 1px solid; BORDER-LEFT: #a8a8a8 1px solid;
BORDER-RIGHT: #a8a8a8 1px solid; BORDER-TOP: #a8a8a8
1px solid; FONT-SIZE: 9pt
}
大家应该可以看到,表格和表单的定制最重要的地方其实在于边框与颜色的选择与搭配,这个是其外观效果的关键。
四、表里春秋
这一次还是继续为大家介绍一些样式表应用方面的技巧。大家知道样式表的定义是针对容器(tag)而言的,那么在HTML 中,Anchor(锚,即超级链接标记)是一类作用非常之大的容器。它实现了HTML最根本的功能(超文本,超链接)。而CSS也有关于Anchor的一些特殊用法。使得页面的联接更紧凑,更富有条理。
跟其它的tag一样,Anchor的定义方法也可以是:
A:
可是它特殊之处在于,它有各种相关的属性,比如visited(浏览过),active(激活),hover(鼠标在其上),link(有链接)。可以根据不同需要而做出专门的定义以根据用户不同的动作做出反应,从而形成比较好的效果。
比如说,您可以做以下的定义:
< html> < head> < title>Untitled Document< /title> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < style type="text/css"> < !-- a:active { font-family: "宋体"; font-size: 9pt; color: #9999FF; text-decoration: underline}a:hover { font-family: "宋体"; font-size: 9pt; color: #99FF99; text-decoration: underline}a:link { font-family: "宋体"; font-size: 9pt; color: #FFCCCC; text-decoration: none}--> < /style> < /head> < body bgcolor="#000000"> < a href="www.www.www">返回< /a> < /body> < /html>
 |
 |
|
图一 |
图二 |
在这个例子中,定义了锚的active,hover,link三种状态。当例子中存在着超级链接时,就会呈现出如图一的没有下划线的淡红,而将鼠标置于其上时,鼠标变成了手形,而这个链接则会呈现出如图二的亮绿色。而一旦访问过后,该链接则会呈现出深红色。这种变化既美观了页面,又提醒了用户。为绝大多数网站采用。
事实上,有很多时候我们在没有使用锚的时候也需要对象根据用户的动作作一些改变。这时候我们往往需要当用户控制鼠标经过该对象时,能够给他一些提示。比如鼠标换个形状。像手形,十字形之类的,再结合必要的javascript,不就可以出现很炫的效果了吗?而且很多时候使用了锚的话容易改变当前焦点。比如当我们使用到Dhtml中的层概念时,如果是层是不可见的,利用锚将其改为可视,可一旦鼠标移上去以后,焦点马上到了层的上面,令大家感到非常不方便。不过,css里面刚好有这个属性,可以帮我们改变鼠标属性,解除这个烦恼。我们现在就看这个例子:
< html> < head> < title>测试一< /title> < meta http-equiv="Content-Type" content="text/html; charset=gb2312"> < style type="text/css"> < !-- .text1 { font-family: "宋体"; font-size: 9pt; color: #9999FF; cursor: crosshair} --> < /style> < /head> < body bgcolor="#FFFFFF"> < p align="center" class="text1" onClick="javascript:">关闭窗口< /p> < /body> < /html>
这里的关闭窗口的这个文字鼠标属性为一个十字,所以当移上去时,鼠标就变化为十字形。而点击它则会出现关闭窗口事件。
这个属性能使用的鼠标形状还有:
crosshair:十字;
hand:手形;
text:文本光标;
wait:沙漏;
help:问号;
e-resize:右箭头;
ne-resize:右上向箭头;
n-resize:向上箭头;
nw-resize:左上箭头;
w-resize:向左箭头;
sw-resize:左下箭头;
s-resize:向下箭头;
se-resize:右下箭头。
好了,关于css的一些技巧性的东西就为大家介绍到这里啦。
|