上一節開始我們討論 CSS (Cascading Style Sheet) 的基礎. 告訴你有三種 Selector. 但只介紹了其中的 HTML selector. 這一節我們把三種都詳細介紹給你
/ T5 a8 B9 a. k/ W! q6 e8 W. a5 I# L$ k. T) S3 y2 `4 [& \! U
HTML selector # f' `; X N3 `+ T4 R
class selector:
; H% y. p4 |- m5 |ID selector:
' d, r7 E( b1 yHTML selector / F5 g6 u% i+ U( k3 f
$ f: Q& n3 ^- C) l" I( r% t* H( z
HTML selector 就是 HTML 的 tags, 比如 P, DIV, TD 等. 如你用 CSS 定義了它們, 在整頁中, 這個 Tag 的性質就按照你 的定義來顯示了. HTML selector 的語法如下
- ]# r1 p/ `' `0 M
. r0 V1 a: o% | tag {property:value}; U4 C, {; O1 U' @$ _5 s
比如我們想叫 H1 的顏色是紅的
# P& r0 L# z H! B; B3 b( h6 y0 B1 J4 N2 ?: K
H1 {color: red}
2 m, r: _& j) S9 @, R0 B這裡還要告訴你 CSS 的一個特點, 它可定義好幾個 selector 在一個 rule 裡. 比如
& k6 m3 c7 p2 I7 b: s) p+ h/ @, m9 e5 e' L5 `
H1, H2, TD {color: red}
. z! L2 G' x- a$ [這個定義就能讓所有的 H1, H2, 和 TD 的顏色都為紅色.
8 `( e9 `' n8 T
- I' w7 F6 _4 ?9 I% J$ cClass selector 2 s5 V& q; G! o: w* Z
+ _! B5 i, u( h5 D, S9 p! ZClass selector 有兩種, 一種叫相關 class selector, 它跟一 個 HTML 的 tag 有關係. 它的語法是 0 u; B5 m9 j2 C/ V* M: D" d5 `
* a' q% q' z; z; p% { tag.Classname {property:value}% F) N# {; ~! j3 x( A
比如我們想叫一些而不是全部 H2 的顏色是紅的 8 [. F, T l) F1 l% H! w- v0 r% N
S; q+ \9 v* ^4 H" v! L, R
<style>' H6 J+ f$ Y% j7 t
H2.redone {color: red}! G# D; U+ e$ x" ^' I* y
</style>3 _' z" p+ p7 g; F) q. g$ c
. H% T2 H4 C J% E<H2>This is H2</H2>! U2 A4 n! r% n2 V) I5 O& R
<H2 class=redone>This is red H2</H2>! t! _9 t# |: S
This is H2
1 N, o# d% f8 w" ~- C3 _4 o8 H! }This is red H2
/ g2 c: B1 x- g4 _" X( y 3 C6 g* {0 J' m3 T" N
! a. k0 `# o9 f3 c1 N9 s' n& A: I `+ y; O" B! o6 U0 Y
第二種是獨立 class selector . 它可被任何 HTML tag 所應用. 它的語法如下 & D: n$ ^' y8 F' {% g
- d2 J; S) r4 D) | .Classname {property:value}- m+ \: c6 J! G O( b* \5 A5 O
假如我們有下面這個定義 ' H( R; u5 i' j* {8 W' ?6 o* m8 W
" }" U1 y3 Y y' H8 I2 ? .blueone {color: blue}. P7 L. N, H6 e& s6 P% y' w' |
那麼我們可以把他應用到不同的 Tag 當中去. 比如 ) j V6 G5 q5 I( X3 d E7 Y. z, P
' j5 Z7 ?1 `& N) G- I0 r
<style>
3 s2 d8 }' I* L. q* m' t .blueone {color:blue}3 K$ q+ L; i# B( e' k
</style># L" c# ]. _1 B5 F
<H2 class="blueone">Blue H2</H2>2 O9 Y- k- g2 w3 X
<P class="blueone">Blue paragraph</P>9 y' U. V5 V. Y. P( s
Blue H24 a. a9 {! E9 Y5 z, a. P9 `. _
Blue paragraph+ ~6 }3 X6 m, ^# @2 r) @
& u; Y% N+ h+ _1 P( \+ \
. `" h2 {) K' A& f O9 \
' I% m$ e6 f" V: a
' z; H" H, |1 t5 h. W- d( M! d8 H顯然 class selector 給了我們更多的自由.& L7 d& y: W* P1 d9 a2 A$ S
- W4 Q7 U* p) R, qID selector
& x0 G+ P$ e b. q8 Z; H1 y
3 V/ S y6 r% y! iID selector 其實跟獨立 class selector 的功能一樣. 而區別在於它們的語法和用法不同, 以及對於 Javascript 縱 HTML 元素有幫助. 它的語法如下 , p7 T8 Z; x% _! K9 y) v$ j
2 C, ~ N& H! c& s+ b0 o3 F! v
#IDname {property:value}/ M$ C4 a. Y0 X V
假如我們有下面的定義
2 E# }$ }2 F6 w
- Z# }6 o1 y5 L# H F #yelowone {color: yellow}
" d1 r) T3 P0 \" _我們可以運用這個定義到任何的有同樣 ID 名字的 tag, 比如
+ M& u9 ^) J5 ?/ V3 H6 E; C3 F
, e$ }" p8 [5 d5 [ V<style>* f: U8 C/ `3 O( @% Z& Y* R5 o+ U8 B
#redone {color: red}4 I9 ?" ]) L9 k$ I2 Y
</style>: h' n7 |" @" J1 c& L0 _
<P ID="redone">text here</P>
& D; z+ C7 o9 f1 e4 Xtext here$ S* A, l' N6 ~! f9 [
) f3 _ N( x. h& m- w( C# H1 [
' L2 d4 f; r! h, f$ L# a' H) |
. I1 u6 o2 A9 p& j0 V6 x3 b, N3 n; x) P
你可能覺得既然 ID selector 和獨立 class selector 功能一 樣, 為什麼兩者都存在呢. 如果你知道用 CSS-P 來定位的話, 你就明白它們的區別了. 有 ID 的 HTML 元素可以被 CSS-P 和 JavaScript 來縱. : t6 ?) {! ?% F: L
% k$ L$ E( R, X6 a- E
到現在為止, 你已經大概知道如何來寫 CSS 的定義了, 下面我們將會告訴你如何用 CSS 來縱或修改
0 ~5 g+ f2 i( l1 I* X1 o* p4 _5 t- u8 e2 v5 b) D7 `' o
字體
% }5 _6 ?. t4 s8 A文字間的空間
1 ]3 Y7 f! I+ z( ]2 f列表
) L f! e6 U7 {0 y) `顏色 / y* A; G7 D+ _) {
背景
! |! R' j4 P L+ V0 o3 m3 PMargin
) F% n7 c2 r+ q0 `位置 |