发新话题
打印

[分享] 从基础开始:CSS实用教程(一)

从基础开始:CSS实用教程(一)

CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一。使用CSS能够简化网页的格式代码,加快下载显示的速度,也减少了需要上传的代码数量,大大减少了重复劳动的工作量。尤其是当你面对的是有数百个网页的站点时,CSS简直象是神对我们的恩赐!^_^
7 I1 ]1 ~& a7 H/ L" D. c) _" i- t; N" X9 p" [8 t) c- \
前言( L2 s/ c* Y! n3 U  _
' T' d7 S; z. u1 @. f! Q* i# ]
CSS(Cascading Stylesheets,层叠样式表)是一种制作网页的新技术,现在已经为大多数的浏览器所支持,成为网页设计必不可少的工具之一。
8 F& N' ~% o7 m5 [/ h' `% Y. I; z, O) q7 h5 q7 {
W3C(The World Wide Web Consortium)把动态HTML(Dynamic HTML)分为三个部分来实现:脚本语言(包括JavaScript、Vbscript等)、支持动态效果的浏览器(包括Internet Explorer、Netscape Navigator等)和CSS样式表。
: \9 a# e& |4 x! z
7 g7 c% Y* q' l* I0 N" K) }' Y& J一.层叠样式表的特点
( ~& m0 h$ t; j6 R" U4 @6 x5 b' ~0 o  N) J$ j/ \
且不说过去的网页缺少动感,就是在网页内容的排版布局上也有很多困难,如果不是专业人员或特别有耐心的人,很难让网页按自己的构思和创意来显示信息。即便是掌握了HTML语言精髓的人也要通过多次地测试,才能驾驭好这些信息的排版,过程十分漫长和痛苦。为了Internet的发展,让更多人早日踏足这个多姿多彩的世界,新的HTML辅助工具呼之欲出。
; z) U5 W8 Q' W0 C
% l3 r" `2 I1 k( d8 X样式表就是在这种需求下诞生的,它首先要做的是为网页上的元素精确地定位,可以让网页设计者象导演一样,轻易地控制由文字、图片组成的演员们,在网页这个舞台上按剧本要求好好地表演。
+ Y" c# \9 W: g
' b  j; k6 k7 Q4 Z4 a9 g, Q' w5 x其次,它把网页上的内容结构和格式控制相分离。浏览者想要看的是网页上的内容结构,而为了让浏览者更好地看到这些信息,就要通过格式控制来帮忙了。以前两者在网页上的分布是交错结合的,查看修改很不方便,而现在把两者分开就会大大方便网页的设计者。内容结构和格式控制相分离,使得网页可以光由内容构成,而将所有网页的格式控制指向某个CSS样式表文件。这样一来的好出表现在两个方面:
  G+ z' K2 Z& O0 O) H7 w2 ~+ a! k
第一,简化了网页的格式代码,外部的样式表还会被浏览器保存在缓存里,加快了下载显示的速度,也减少了需要上传的代码数量(因为重复设置的格式将被只保存一次)。
% y$ X( H# L0 K) G3 Z: J/ S1 @3 @, B8 \1 {$ P# H
第二,只要修改保存着网站格式的CSS样式表文件就可以改变整个站点的风格特色,在修改页面数量庞大的站点时,显得格外有用。避免了一个一个网页的修改,大大减少了重复劳动的工作量,当你面对的是有数百个网页的站点时,CSS简直象是神对我们的恩赐!^_^
$ U2 ^5 `- l" L/ I; T: K. z7 P' p) o4 D+ B5 E+ Y# r
二.添加层叠样式表的方法
' [$ Z3 z5 n6 t5 [7 v2 A1 D% t/ ~6 O' g, z
我们为网页添加样式表的方法有四种。: i# I1 b5 B  R
+ z3 ^- B' i$ v+ \5 ^& V" F  h
1.最简单的方法是直接添加在HTML的标识符(tag)里:& Z: C' f7 B) j1 O; B  B

3 H% I8 t( ?: A9 \5 i4 e< Tag style=”properties”>网页内容< /tag>) O2 x9 ]8 K* x2 ?) g
4 E4 @/ {( b, W
举个例子:7 L0 D* L. N% f, \! ~5 _

) Y, n# J0 r  Q. n  ~  x< p style=”color: blue; font-size: 10pt”>CSS实例< /p>9 B% b( N  ^) A) z
! `1 c! {3 J  T1 G
代码说明:
7 [! {8 b, Y) n! k2 l6 v, `
; _5 l9 T" m: ?用蓝色显示字体大小为10pt的“CSS实例”。尽管使用简单、显示直观,但是这种方法不怎么常用,因为这样添加无法完全发挥样式表的优势“内容结构和格式控制分别保存”。 8 K" g+ n3 N$ c( p) H( P

  X5 E7 R, u) Y1 ?5 ]/ b2.添加在HTML的头信息标识符< head>里:
. {$ c& `6 P9 S$ Y$ }' Z& w8 L" Q, ?7 L! I+ d4 ^2 W4 x/ g3 r8 G
< head># W, p) v( e; X+ J  s( X4 g
" l8 M: g( T+ D2 r" f7 R
< style type=”text/css”>
* E) R9 h; P( }
- ?  y3 T/ Y+ ]1 ?< !-- 样式表的具体内容 -->, @7 S$ ?6 O+ ?* z

5 X9 l  n' s! `< /style>+ O7 S/ W% |. S9 j; L% C6 c
' Y: \3 Y1 t% b. |
< /head>  e: h6 X! Q% L  D4 R2 T
+ |* X, R5 z8 W9 q# }, t$ U
type=”text/css”表示样式表采用MIME类型,帮助不支持CSS的浏览器过滤掉CSS代码,避免在浏览器面前直接以源代码的方式显示我们设置的样式表。但为了保证上述情况一定不要发生,还是有必要在样式表里加上注释标识符“< !--注释内容-->”。
0 H& _' A4 |- ^! @; u3 k" U7 Z5 p: x7 `5 D
3.链接样式表7 L8 p5 S: N+ F3 b9 p( a9 o- O

3 Y; w1 F2 ^0 g6 A# ?同样是添加在HTML的头信息标识符< head>里:8 G- T1 J' D+ n" f% p& \
7 k  q- C& {0 F9 [# O
< head>8 X2 c8 N8 n' q; M$ Q! [7 X
6 w; {8 A( J$ d. y+ t
< link rel=”stylesheet” href=”*.css” type=”text/css” media=”screen”>& N) w* m8 B: D' L8 t

  o" f" l4 u$ `< /head>
0 D' D2 _+ A6 M: x: ?+ @5 l, w' M6 E6 b+ w1 U  ^& @0 k
*.css是单独保存的样式表文件,其中不能包含< style>标识符,并且只能以css为后缀。
% v* z" a: N! n' N) m8 t7 _& t& }, i2 Q
Media是可选的属性,表示使用样式表的网页将用什么媒体输出。取值范围:5 c( \2 |2 e* F4 l

; u) `* L1 q9 j- W  ^·Screen(默认):输出到电脑屏幕% m) |& b- @3 L+ m2 d; I
# H6 Z. B- m. P+ T
·Print:输出到打印机; s$ W) t$ \# c: a8 `
0 T4 z$ _! `! Y6 j
·TV:输出到电视机
+ z: R7 S' Q1 k! s, H/ R  v8 C9 @: Y6 z3 \: r: \: g
·Projection:输出到投影仪5 v+ A$ s8 R) c3 D% X7 {1 K
* t  T* a% g9 ?4 D5 o
·Aural:输出到扬声器
3 H, `- Y* o% L/ ~) a: v
0 C, m; t8 \# }. v0 `5 R·Braille:输出到凸字触觉感知设备0 _5 w* a& d* V3 ^. w  P7 M: }

+ M' O  n. P' K% X; _8 U, [·Tty:输出到电传打字机
6 I) ^; e8 b1 K
. u1 g, i# I! L·All:输出到以上所有设备
' T. ]; }3 {6 d6 j# k$ A9 v
! h7 Z8 F# Q' l# x: H如果要输出到多种媒体,可以用逗号分隔取值表。
: O$ o  c, N; h( s  N5 W. Z  Z1 o& E. O7 W
Rel属性表示样式表将以何种方式与HTML文档结合。取值范围:
6 x5 [5 d9 U' n4 x7 ~8 w7 L# x8 t: Y$ F6 n( S2 e; q
·Stylesheet:指定一个外部的样式表: o, _7 j% ~9 h6 l$ a
& _2 |' u1 x/ v0 Q) I- F
·Alternate stylesheet:指定使用一个交互样式表
; L2 L, k' p6 M4 C
3 i/ G% m1 o3 O4.联合使用样式表2 d7 T3 P) `3 c- i: J9 @, V3 X

' g% X1 J$ }2 X& _* {* A同样是添加在HTML的头信息标识符< head>里:/ b3 f5 l+ d7 I# G
! m2 C) N7 P  C: i- {- L" e5 o  W
< head>5 s6 z+ j7 \0 }) V+ E

' v* v/ K- F- i3 h+ j4 J' z+ l/ v6 P< style type=”text/css”>
; B! ]/ S8 _" s/ m3 W  ]- U/ u# x8 R/ `# A7 ?
< !--3 t4 s; U1 f+ k/ d. p
! S8 ?" O" h. G
@import “*.css”9 P3 u6 C3 j9 N

5 I9 B- [6 N8 x/ _& Y2 o其他样式表的声明
# {) y5 x8 Y9 M) B* P
" f# y9 o% D: h-->  }* ]% Y0 F/ B9 }

+ r2 X" }: x5 ~. e8 }3 I; O, i< /style>
7 v7 }' y/ t' J& g: Y: X
  t% G* |0 s" |0 O/ Z9 j< /head>
- _2 T5 c4 ?5 A+ s$ H: A8 E9 L) D5 j7 `  o( p- w/ T
以@import开头的联合样式表输入方法和链接样式表的方法很相似,但联合样式表输入方式更有优势。因为联合法可以在链接外部样式表的同时,针对该网页的具体情况,做出别的网页不需要的样式规则。  m) _! l+ N- k- [/ g8 R2 P

2 u% C( ?4 Y  I' d/ Q需要注意的是:
3 C# [  n* q, X" A
8 e" d, l+ O( A5 d0 H& H/ |8 A- @·联合法输入样式表必须以@import开头。
" E" O( g8 K- }) o5 R3 W& h; s
  N' B9 Z  D. i* L1 [·如果同时输入多个样式表有冲突的时候,将按照第一个输入的样式表对网页排版。
( V8 v- q" d0 `" t
9 V1 U& ]2 }5 i7 J' Y) l9 }·如果输入的样式表和网页里的样式规则冲突时,使用外部的样式表。
萝莉有三好:清音,柔体,易推倒;  正太有三宝:天真,可爱,皮肤好;
御姐有三好:啤酒,洗澡,吃嫩草;  女王有三招:木马,蜡油,皮鞭操;
人妻有三妙:温柔,善良,服务好;  援交有三套:搭讪,进房,掏钱包。
大叔有三好:成熟、隐忍、好推倒;  君子有三受:忍受、接受、和感受。

TOP

三.层叠样式表的格式 5 t' C! L6 L: Y& }/ y1 ^4 }6 F

! q% C# f2 f9 R2 l; z3 o( S一般来说,样式表的声明分为选择符(selector)和块{}(block),块里包含属性(properties)和属性的取值(value),基本格式如下:
# Z" @7 C7 Q2 ~! ]* ~. T( C
% q! Q8 ?$ L5 x& H, W7 M选择符 {属性:值}  p$ o" F1 |: F  K) x
9 }3 Y) n4 _7 Q
其它格式1:
6 M8 ~/ T) X6 ~: o# E4 F4 D3 _, x  C
选择符1,选择符2,选择符3 {属性1:值1;属性2:值2;属性3:值3}
+ S0 s+ J$ t* _; u3 W4 B# w) u* Y/ Q
7 p* V, I4 ~$ O2 X有时候多个选择符将使用相同的设置,为了简化代码,我们可以一次性为它们设置样式,并在多个选择符之间加上“,”来分隔它们。
  M$ {$ f1 Q  v( L* y( O9 Q( F
4 l. x# l! x, D0 j当有多个属性的时候,必须在两个属性之间用“;”来分隔。, ~" S: H* A& O! N/ \
9 R, h0 M4 [" L1 y
其它格式2:% s# n: {3 N: |: J/ I) z0 M5 N
/ d0 A$ z( \5 r3 ]; h
选择符1 选择符2 {属性1:值1;属性2:值2;属性3:值3}
( m" M# W+ _% N9 i( m
$ }" E3 u5 v$ d. |% x! x/ d和格式1非常相似,只是在选择符之间少加了“,”,但作用却大不相同。表示如果选择符2包括的内容同时包括在选择符1里的时候,所设置的样式规则才起作用。; t9 k; c3 N) ]
! ]  z8 H6 h7 {- z) |
四.层叠样式表的分类0 ^' M, ~: N. r* r0 P8 `; @
: T( H- P- o  t* J# Z2 h
为了使网页的格式不过分的单调,必需让相同的选择符也能分类,并能按照不同的类别来进行不同的样式设计。基本格式如下:" F5 B( _6 B5 m) [
( Q1 b6 W1 Q7 M
选择符.类别名 {属性:值}" n* _1 b) t/ [+ I" @

2 E0 ]+ j. p% n) Q4 D类别名将可以在HTML的标识符里引用:+ H3 w0 |- @/ a. G" u

. K* q$ b4 c8 [- q* j4 _7 Q: i< 标识符 class=类别名>网页内容' {; y  J: G5 R

" S. H' E& {6 l% l; l# U  d五.层叠样式表的伪类2 u& w4 d+ X0 d
+ J$ y6 n% y/ M- l7 J2 m; i
除了上述的分类方式外,为了使分类的使用更灵活多样,又产生了伪类的概念。类和伪类有什么样的区别呢?
7 Q* M( q7 ~& P  w1 W) u
8 A2 N: b5 L3 X9 [, [$ y# q" D一般地说,选择符可以和多个类采用捆绑的形式来设定,这样虽然能够为同一个选择符创建多种不同的样式,但捆绑的形式同时也限制了设定的类为其它的选择符所使用。伪类的产生就是为了解决这个问题,每个预声明的伪类都可以被所有的HTML标识符引用,当然有些块级内容的设置除外。基本格式如下:9 d6 g  K" e: F& _$ n0 h+ }8 G
# O1 c, |- [1 I
.伪类名 {属性:值}0 B8 e6 _  a2 W& s' a; \$ [

5 h$ f- G6 S2 K, Y伪类可以被任何标识符在HTML里引用。
5 s$ X1 B3 O8 D1 i# {$ m% Z6 C9 Z% d- d# R
<标识符 class=伪类名>网页内容
萝莉有三好:清音,柔体,易推倒;  正太有三宝:天真,可爱,皮肤好;
御姐有三好:啤酒,洗澡,吃嫩草;  女王有三招:木马,蜡油,皮鞭操;
人妻有三妙:温柔,善良,服务好;  援交有三套:搭讪,进房,掏钱包。
大叔有三好:成熟、隐忍、好推倒;  君子有三受:忍受、接受、和感受。

TOP

六.控制字体的样式
/ n& l2 r; L  a" ?8 f
  P  k# y* Y6 @7 m2 c控制字体的样式包括控制字体类型、字体大小、字体风格、字体粗细四个部分。   H  P0 K, ^; R7 w+ R# ~3 v

3 P& ?- J: k/ H. D5 K1.字体类型
) w1 a7 h0 U. S1 g5 p1 }
6 Q" e2 m$ e  f: s平时在使用WORD之类的字处理软件的时候,经常需要调整字体的显示,比如说“Arial”、“Impact”、“Verdana”等字体都是笔者使用的较多的。
6 \6 w6 D9 ]: k* s) T; ^( j8 n) M  a$ D* r$ G
基本格式如下:
# _; B" b! E  b% \7 R
+ `  k, _* n# m2 k/ Afont-family: 字体名称 ) N( |7 v' B8 h. X' O* S
* A/ y5 D7 N% v- C
如果在font-family后加上多种字体的名称,浏览器回按字体名称的顺序逐一在用户的计算机里寻找已经安装的字体,一旦遇到与要求的相匹配的字体,就按这种字体显示网页内容,并停止搜索;如果不匹配就继续搜索,直到找到为止,万一样式表里的所有字体都没有安装的话,浏览器就会用自己默认的字体来替代显示网页的内容。
  a6 T4 I' C4 w7 W9 c, M' i8 ~4 h. G4 |$ ~0 M, j3 O, M8 b
注意:
' D) v" s2 Q/ z# q- u: r
" C; j( R/ p: e% N: ?1 k·当指定多种字体时,用“,”分隔每种字体名称。 4 X0 p; ^. f. w3 [- R
" i# F4 x5 c1 I6 g, m
·当字体名称包含两个以上分开的单词时,用“”把该字体名称括起来。
$ N, C4 w( C6 |1 b) g" p6 d- M, ]4 r6 s  S/ G( ^# q% m
·当样式规则外已经有“”时,用‘’代替“”。
1 V8 F7 Q, y" ]/ R0 F4 f0 ^4 A, ]5 |" l& @1 l" B
2.字体大小
, h2 p1 m" H9 e
/ j8 k$ ^) _5 w- S) E* l% ^) |3 d基本格式如下: ) n4 G- {9 _$ U5 q: j3 h) W+ R
8 Y2 z" g  A. m8 f% v) Q6 M+ X: U
font-size: 字号参数
& c' z0 i  n* H4 ?& Q* m/ b8 d0 m
( y3 w- T- ^" t4 @字号的取值范围: 5 Z. `9 ]0 V* w+ T

- V. h  |9 K. Y·以Point为单位:点单位在所有的浏览器和操作平台上都适用
3 b. D( |# ~5 t1 j( w7 O# R$ T1 B# W, n: y* f1 u
·以Em为单位:指字母要素的尺寸,和Point相同距离   E( P' A2 f% S8 Z* _6 j' |4 p3 P
6 i$ |( {, M, Q5 C; r7 P6 E
·以Pixes为单位:像素可以使用于所有的操作平台,但可能会因为浏览者的屏幕分辨率不同,而造成显示上的效果差异 * f; X  K8 i+ K, L" q
  O9 ?( @" z' z# V. T
·以in(英寸)为单位 ! {# j# u0 _# [7 E

) Y5 F/ b+ V1 \: G0 U·以cm(厘米)为单位
5 e% b" p3 z% c; q6 N; @8 p( ]! J* ~9 l; e7 I3 {
·以mm(毫米)为单位 # ]$ g, R9 T. K9 d: |, a

- o( K2 C- \" D" h·以pc(打印机的字体大小)为单位 ! p, N4 y- \1 K

! ^1 U7 g) I  u, Q. D·以ex(x-height)为单位
, v) I3 u7 o0 t7 _' M& C# f' g8 E, I2 E* ~  _* Q8 e
·smaller:比当前文字的默认大小更小一号 ! [1 h- f% |9 P& o

6 `5 ?; F0 f& u6 d9 ^3 g·larger:比当前文字的默认大小更小大号
4 }2 P0 o) F$ r4 I) U
5 D, z1 s, b/ r& P* v  ~2 G+ A4 W·使用比例关系 2 Q5 L; `0 x. z/ @% C
- Q" [5 }9 }( g9 v) k
·xx-small
. q, N, i- T9 V+ R# H4 d5 R
1 p6 @& S) @1 S3 \$ C4 G·x-small ( {" {: M2 j0 D8 U7 e7 W0 S2 l$ `" S

0 o" N' U/ y6 x( n* Y- W7 H·small
% I% k* C3 N; C. R
" w) F8 X9 E  f5 K+ M9 w& h·medium
- S7 I$ q7 z4 f6 w4 W
, ?0 L) Q% l: |" B6 A7 G·large 3 S% q) d' U9 R
$ E$ w2 F; d0 B2 l" ^' {! d
·x-large
% ^* S$ r1 i, b  |2 m: A4 H
' N' S6 x6 C. R$ z·xx-large
% E0 L+ J) P( T5 j" @' g* Z$ A' H* X; h" m
3.字体风格 0 }6 @$ L# I/ }1 F# r1 W2 ]0 A/ ^/ |
& B, b4 F5 ]/ U4 N
字体风格只能控制各种斜体字的显示。
! x& l& o' |1 U. M
* l4 y* p+ v5 s; \8 [基本格式如下:
! W9 q- I( L; I. M. t* @
( N# V" A- t0 V1 c' ^3 cfont-style: 斜体字的名称 % s6 z3 h4 L& V2 k0 G5 S$ Y

& ~! r% J/ H& p9 n: @2 b4.字体粗细 5 u6 H. u9 s3 [
1 d7 Q- k& h$ j% u& v  D
字体粗细控制粗体字的显示,取值范围从数字100~900,浏览器默认的字体粗细为400。另外可以通过参数lighter和bolder使得字体在原有基础上显得更细或更粗些。 : `5 M3 X# i8 g6 w& N- I
& F1 R  f: O3 Z/ \
基本格式如下: 8 K, B6 b9 o* T; x4 A5 l% z
/ q! a/ S, U6 G
font-weight: 字体粗细
萝莉有三好:清音,柔体,易推倒;  正太有三宝:天真,可爱,皮肤好;
御姐有三好:啤酒,洗澡,吃嫩草;  女王有三招:木马,蜡油,皮鞭操;
人妻有三妙:温柔,善良,服务好;  援交有三套:搭讪,进房,掏钱包。
大叔有三好:成熟、隐忍、好推倒;  君子有三受:忍受、接受、和感受。

TOP

发新话题