上一節開始我們討論 CSS (Cascading Style Sheet) 的基礎. 告訴你有三種 Selector. 但只介紹了其中的 HTML selector. 這一節我們把三種都詳細介紹給你
, C; s" F$ E4 o) k) D& k$ V: {( E5 c$ J( U6 ?. z
HTML selector
4 X, Z& G; Z) \% [2 [$ y. Z; w; Iclass selector: ( r* J, t7 \8 ]/ j" z6 N% c) ?
ID selector: : Z+ @" G# P" F8 X& l+ [7 ]# a
HTML selector
2 G+ R$ f; n% {0 _1 K( f( [3 W8 y$ m4 h5 \+ Q7 H
HTML selector 就是 HTML 的 tags, 比如 P, DIV, TD 等. 如你用 CSS 定義了它們, 在整頁中, 這個 Tag 的性質就按照你 的定義來顯示了. HTML selector 的語法如下
0 R# J- ^4 N: _8 Z6 X) U$ z- w P, e/ ^ R9 X7 c T
tag {property:value}
\3 k: L) E6 l7 E0 v比如我們想叫 H1 的顏色是紅的 1 J4 R$ _& b0 o+ P
& ^! z* n5 F4 B+ v, u
H1 {color: red}
' l |3 A% S: D) E這裡還要告訴你 CSS 的一個特點, 它可定義好幾個 selector 在一個 rule 裡. 比如
" ~0 P9 f! Y6 q W
8 l9 |: O3 R2 G& s6 Q) a" P H1, H2, TD {color: red}
: ?1 q: y1 N" n5 P7 F3 C. O6 k! A1 U e這個定義就能讓所有的 H1, H2, 和 TD 的顏色都為紅色.
3 c, Q6 u$ i' \" S1 m
* \ w% g3 Y% a, K2 a, LClass selector ' A' D1 g" \, l9 C9 V
4 V6 h) v! l: `7 A! v+ m5 G7 B/ \2 k+ ?Class selector 有兩種, 一種叫相關 class selector, 它跟一 個 HTML 的 tag 有關係. 它的語法是 . q; C% u4 d; k" T
) j/ g, `3 M7 E) x; O2 r
tag.Classname {property:value}
+ g2 ` u$ o! Y6 z比如我們想叫一些而不是全部 H2 的顏色是紅的 ; n# P* G: z) b( M: D! D: \
9 _5 W) g. G6 V3 V) V3 o0 X' ], t6 N<style>9 E, b" V& V& E- [( f
H2.redone {color: red}
# k0 P" }0 O! Q</style>
* U/ Z' B/ ]' y6 r0 O' r/ O' ?) c7 K
<H2>This is H2</H2>4 R" l# B2 y2 H. K
<H2 class=redone>This is red H2</H2>8 f% H. p( M! H' P4 v" ^$ m
This is H26 |! v( ]- C! E5 O
This is red H2 " _; v: j2 A Y! A
$ _' ]- }1 ?, p- ]
, k; f7 O/ u7 J+ E0 `, w; I' m6 Z2 p' `: t
第二種是獨立 class selector . 它可被任何 HTML tag 所應用. 它的語法如下 + I! h2 j% a o& X" h) ~ v" w
9 {3 a7 E3 @ i- X0 z2 u* _' t# \
.Classname {property:value}) h7 }8 |5 h9 Z! r( X* {
假如我們有下面這個定義 ) j/ C0 E# K m. X0 {$ q7 U# x
5 w8 @7 J2 ^) v8 j7 e
.blueone {color: blue}
( A$ Z" S4 s# q4 D: Z( l8 P" n那麼我們可以把他應用到不同的 Tag 當中去. 比如 $ T; u7 G8 L6 p$ n
: Y, N E' o% e8 w
<style>
. n! }) v r" `) S0 {" e6 J .blueone {color:blue}
7 t7 X& a, F8 q9 l</style>' G. H1 c: ] j/ H o& F
<H2 class="blueone">Blue H2</H2>; `7 b# a" T2 _9 U; N
<P class="blueone">Blue paragraph</P>( k1 a) M& L1 H( G: V2 I! q, U
Blue H2/ |! f2 x$ i7 v' f4 ~9 O
Blue paragraph
8 O3 }5 I: M4 r3 m
: E y l3 G' F3 Y
1 G" h$ y( T+ Z! b, W+ w( V
3 Z9 {; P3 }$ m" n, S+ y& A0 ^1 v6 L+ Q1 m0 E/ j
顯然 class selector 給了我們更多的自由.2 L( k3 X4 x9 @5 _7 \: T
/ q' w3 [ s! h N6 @8 G5 [
ID selector " J8 z( u9 M/ ]6 [
$ o# h8 K; s2 Q7 F, c7 TID selector 其實跟獨立 class selector 的功能一樣. 而區別在於它們的語法和用法不同, 以及對於 Javascript 縱 HTML 元素有幫助. 它的語法如下 7 l- C& ?# E8 n6 v( L* y' j7 p
% _8 a b5 x o0 W7 Y
#IDname {property:value}6 K. h, z$ t6 O5 W' b
假如我們有下面的定義 8 w; P# N0 U& P7 q. Z: n% H
6 p J9 Y" E+ ~, U
#yelowone {color: yellow}
) V% x/ t8 {: i我們可以運用這個定義到任何的有同樣 ID 名字的 tag, 比如 , j) ^$ ?* W0 D% V5 U* g
9 g: n& ]8 X/ w" M1 W/ O7 N
<style>
2 p" i/ P0 t5 X$ y# Z( C- s: }# _ #redone {color: red}3 S0 r: q( t& \5 D% o7 p
</style>+ v+ _/ E$ s1 t. C9 ?
<P ID="redone">text here</P>
, m; i7 e& e) t6 E! _/ Y4 ktext here9 r, i/ j. j- D, S9 k& @6 \
# S1 S/ v( e3 n1 p# f; \
; h7 G- |1 g1 {. w- j% _( u2 K7 U$ X( L. Y( Y* N6 I
G" I4 R4 n4 N! Q. x8 z9 L8 s
你可能覺得既然 ID selector 和獨立 class selector 功能一 樣, 為什麼兩者都存在呢. 如果你知道用 CSS-P 來定位的話, 你就明白它們的區別了. 有 ID 的 HTML 元素可以被 CSS-P 和 JavaScript 來縱. 2 p: _9 J' o J
" b) _, M% C# H" X8 [4 Z
到現在為止, 你已經大概知道如何來寫 CSS 的定義了, 下面我們將會告訴你如何用 CSS 來縱或修改
+ [" r' S8 @# `( A: U8 b1 W% |; `4 q8 F" ?5 q! D0 q* M( c; G) p
字體
( r, f9 k ~" ^文字間的空間
6 P5 L: {9 n- ~+ A列表 . [. h' o; h3 K7 G* ~( v4 `. \1 H
顏色
' k# I' q( F0 ^" U背景
/ d7 s( k$ @! k) \, ]Margin
5 P+ j' |. R# {7 r" v位置 |