上一節開始我們討論 CSS (Cascading Style Sheet) 的基礎. 告訴你有三種 Selector. 但只介紹了其中的 HTML selector. 這一節我們把三種都詳細介紹給你
+ l4 U- y& g& e) @4 O5 b# z1 [) b
HTML selector
& l V8 Z/ [1 V) z% \class selector: 6 n+ A9 s O* c3 M* k, b
ID selector:
, X) ?; H4 E% i. y# P3 N$ hHTML selector + i/ @# z) {9 ^* i
% G ~+ R8 D6 F1 A; }HTML selector 就是 HTML 的 tags, 比如 P, DIV, TD 等. 如你用 CSS 定義了它們, 在整頁中, 這個 Tag 的性質就按照你 的定義來顯示了. HTML selector 的語法如下
5 H. ~, u: A( D1 T
9 G+ ^& z. B+ V* `8 r tag {property:value}' a8 w- j+ Z# }4 U, ]
比如我們想叫 H1 的顏色是紅的 # S5 a3 r! ?8 l1 n
7 y% n" Q& F) f
H1 {color: red}* _, D3 T8 H# M( J# v4 ^
這裡還要告訴你 CSS 的一個特點, 它可定義好幾個 selector 在一個 rule 裡. 比如
- h; j% e7 p2 G& b
+ p( ?: f! \4 C4 m* u H1, H2, TD {color: red}# b/ V# o6 Z4 x C4 k1 m1 J) `
這個定義就能讓所有的 H1, H2, 和 TD 的顏色都為紅色.5 i Z P3 l1 l1 l
- ^" r5 a# y- e
Class selector 7 `9 n: U0 W6 e; L2 m& I9 B* t4 |
6 G' |0 B! ~( f* C) {& J
Class selector 有兩種, 一種叫相關 class selector, 它跟一 個 HTML 的 tag 有關係. 它的語法是
/ R6 ?. ~$ n) A7 s
1 ~6 O5 E1 i9 } tag.Classname {property:value}! v9 |: F9 K! a& {2 J
比如我們想叫一些而不是全部 H2 的顏色是紅的
: z f# b" r, m( k V8 ^: U2 g6 k1 K3 M" g0 _# b0 x6 ~
<style>& Y" D2 L$ p7 [4 R
H2.redone {color: red}, R6 ]+ n, R: x7 ?* a' t
</style>& o. j- J [# N
! _% d6 f0 y" @* B<H2>This is H2</H2>
( v3 J( J9 s: c5 v/ X4 R; q<H2 class=redone>This is red H2</H2>6 ?5 y# y9 J8 c. F- W( T
This is H2! B* v. R- @7 v& g/ Z; M% J
This is red H2 ) b) C! a2 e& G' d9 t6 v) ~
* P8 o7 y* @( y* }1 ~8 F
! }! n1 ?/ A/ E$ X2 y/ m
- N- R+ @7 E9 m- \4 h9 C( T$ G. ]5 }/ [
第二種是獨立 class selector . 它可被任何 HTML tag 所應用. 它的語法如下
# X4 U" q3 V3 W$ ]- v9 _3 ^
9 T1 ~- E0 e7 I8 i7 Z5 m1 y8 t0 z5 N .Classname {property:value}! h9 X4 d _. V$ v& D3 v% i
假如我們有下面這個定義
' Y- _, C+ q6 A5 I; T: v$ X: Q" m |" Q: | p
.blueone {color: blue}
2 W; O4 b; K! Y& H8 t; ^/ e' T那麼我們可以把他應用到不同的 Tag 當中去. 比如 * q- z# O0 X9 A& D, Q8 o
* Q/ [; d$ P+ B0 N; A) @
<style>
N" h4 g8 G; C o/ H .blueone {color:blue}/ X4 q. `& n1 c/ j6 T o& \. j
</style>
. }, L) i3 j S. n1 N: U) }<H2 class="blueone">Blue H2</H2>+ n- C- {" c, S$ m# C
<P class="blueone">Blue paragraph</P>9 T3 j" P+ |7 h( u- k
Blue H2
7 G, [ C3 c6 d' Q1 I6 bBlue paragraph
1 ~, K9 j' }: Q! t$ {& ?
/ N! F" R. f# V9 w+ v $ A4 B5 u* ~/ S2 w; K
& R' [, _. I5 S8 H9 v# k+ Z
3 L e! \( A( x- w5 X
顯然 class selector 給了我們更多的自由.
( P0 e, `/ l+ C0 w+ e
( ~8 E! _7 \* H% G4 K$ cID selector
3 l- R( O- F- a
: n2 ~& r T- sID selector 其實跟獨立 class selector 的功能一樣. 而區別在於它們的語法和用法不同, 以及對於 Javascript 縱 HTML 元素有幫助. 它的語法如下 ( t5 N/ g8 n0 X, B# B( @0 N, \
% ^9 n6 w; H" `( y# w6 y. O m J
#IDname {property:value}0 o( q9 A; h/ t7 R) a
假如我們有下面的定義
' t( J( v( w% _6 u, Z5 L' N; F: t
* j5 O4 a" x4 b& G) P# o, a #yelowone {color: yellow}
7 w+ F$ f0 `2 H$ X1 R/ Z我們可以運用這個定義到任何的有同樣 ID 名字的 tag, 比如
1 Z3 l8 t7 m: ~$ N3 r4 `+ ]8 h$ }' |+ ]
<style>, |* Z6 t+ B7 e$ s/ |7 M' v
#redone {color: red}5 p. p, V3 a J Y* F
</style>- {2 E" q( F, {
<P ID="redone">text here</P>6 ] ]1 M0 J0 ^, m2 e+ {- N
text here! Z; l3 x4 ]5 {; n. _
% z8 O# e5 X0 C! Q1 ?4 t- B/ y9 U$ e
& z4 C; U; Z1 I" q8 X! Q y- i% ?% v* ]8 G6 {
* H p ^8 T& e" D+ q你可能覺得既然 ID selector 和獨立 class selector 功能一 樣, 為什麼兩者都存在呢. 如果你知道用 CSS-P 來定位的話, 你就明白它們的區別了. 有 ID 的 HTML 元素可以被 CSS-P 和 JavaScript 來縱.
2 Z! n1 D2 F( C
9 I1 T, j7 R9 D. t. t) p到現在為止, 你已經大概知道如何來寫 CSS 的定義了, 下面我們將會告訴你如何用 CSS 來縱或修改 + V3 E+ U# ]- q. g( `1 H
, H. N6 Q- Q- y" `6 R1 \字體 0 f6 @( h7 G8 O& F& x1 m- I$ K
文字間的空間 ! U* U# \& X7 H8 r. N" @% D. O
列表 " g. A) }% Q. W/ M2 w5 X% s8 N
顏色 3 N5 S" f, {+ \: |3 E/ b0 X* e
背景
$ D' d' g- e6 \! lMargin - C* j8 m( Z- d2 Z, B0 f
位置 |