上一節開始我們討論 CSS (Cascading Style Sheet) 的基礎. 告訴你有三種 Selector. 但只介紹了其中的 HTML selector. 這一節我們把三種都詳細介紹給你 - D) h _; ^3 W: b8 Z- M$ l6 t
7 R* G( u/ ~. B1 x" z gHTML selector
8 g' ^/ V, t6 ~4 ]4 dclass selector:
l5 i& A/ |% Q/ WID selector:
. |; _8 g p- N h) V- M' eHTML selector 8 h' H+ o; Y5 k( J9 Q
4 d8 _- K3 w4 U. \
HTML selector 就是 HTML 的 tags, 比如 P, DIV, TD 等. 如你用 CSS 定義了它們, 在整頁中, 這個 Tag 的性質就按照你 的定義來顯示了. HTML selector 的語法如下
7 `/ _; k3 }: b2 \+ y% i3 Q$ d: f* Q$ R+ f0 z$ ^
tag {property:value}
. a) S* o4 L' f比如我們想叫 H1 的顏色是紅的
' w4 a" G4 k0 ~5 G J" S
{( c- R, s. S) B5 u" L- X- \ H1 {color: red}
% J7 s8 w8 h. _$ [8 h& b+ m這裡還要告訴你 CSS 的一個特點, 它可定義好幾個 selector 在一個 rule 裡. 比如
0 _. M1 t- X' Q
% {5 a/ U) v! b& F3 } H1, H2, TD {color: red}
3 w1 e5 @: m* I {這個定義就能讓所有的 H1, H2, 和 TD 的顏色都為紅色.4 y5 q( K5 M# X+ s& }
9 b& q' T5 l7 r7 z# Y$ P# y
Class selector $ ^5 {- J; V0 |
$ [4 l$ g) g5 O3 j' t! eClass selector 有兩種, 一種叫相關 class selector, 它跟一 個 HTML 的 tag 有關係. 它的語法是 6 j( T. H) {# t: ^' o7 t
( e( {/ k$ W( u3 p" a' i tag.Classname {property:value}
~. b: x1 v* @1 Y* I M& G! q比如我們想叫一些而不是全部 H2 的顏色是紅的
! D4 i* f, U+ P# P. V
+ H; m) v; b: [: L<style>& ^+ {8 c2 `8 _/ q5 F
H2.redone {color: red}' d- [. O, Q& F$ ]9 U
</style>$ R7 `1 X0 V1 q6 j
% C0 u* _) ^* q<H2>This is H2</H2>
& C; I4 e1 g( u9 E% _; X J<H2 class=redone>This is red H2</H2>. w& }" e, {& W; o5 M+ e/ O
This is H25 z: _2 p9 F) Z8 ` e+ s0 E- r5 P
This is red H2 8 I. M9 W7 N$ p; p5 W t& B
9 M$ i& [* W8 q/ `1 f+ @2 z
! l$ h- U/ q" g3 ?$ n6 y5 I8 L4 v1 T; a/ h P' b: E/ h) w" B9 A
第二種是獨立 class selector . 它可被任何 HTML tag 所應用. 它的語法如下
* y2 ~% |5 _2 n# D. X" u
8 U2 V$ `2 ]8 ~ .Classname {property:value}( j! t2 g6 C: c# d7 l
假如我們有下面這個定義
8 l9 t S1 j2 F% o7 a- L
7 S5 ~' i/ i k# Z .blueone {color: blue}. }' L/ v% `, J- e
那麼我們可以把他應用到不同的 Tag 當中去. 比如
: x$ @, Y9 J* f
& b3 B4 o# A: K0 f# @5 t3 b<style>
" {2 {- u- N* G; z) ]& Y .blueone {color:blue}' N x4 m! G( C
</style>
1 H6 c# J! c# d% j<H2 class="blueone">Blue H2</H2>
7 C! E: Z$ O& |! l<P class="blueone">Blue paragraph</P>0 }& y. u7 C7 S) K
Blue H2
& J2 [7 b( I6 U0 @Blue paragraph# ?' \. |$ R3 f9 J3 J0 f5 F+ D9 b+ d+ q4 W
5 s! g5 G( I0 F& Q% B/ [. b8 ^( e
F1 v" I0 C! ~7 B/ v5 e
+ }3 {1 m: p {( K4 Q+ B" Y4 {/ e; T9 Y( h4 O$ x- b5 s# w) o9 u% ?
顯然 class selector 給了我們更多的自由.* f$ |# t$ f0 e, s2 K. B
+ U8 b( P! m* S3 X* l2 a
ID selector / @8 S" O! ~* q7 |2 @
& ~; E$ z6 h: n! ?ID selector 其實跟獨立 class selector 的功能一樣. 而區別在於它們的語法和用法不同, 以及對於 Javascript 縱 HTML 元素有幫助. 它的語法如下 & U! ^- @+ w0 P- t. _5 R" \
- ]* U# C3 |; B( E( ^
#IDname {property:value}
% [( V1 S3 |. f8 Q& o* ]. ]假如我們有下面的定義 8 O& K* G" w/ z+ {
' u1 X0 p! K/ S7 ?. `( J) N #yelowone {color: yellow}
3 {0 T% ~+ X8 x" L4 S我們可以運用這個定義到任何的有同樣 ID 名字的 tag, 比如
" e9 r2 F) L$ X$ r! T3 U: x* ?" G h W
<style>2 J8 W9 m) Q$ M3 u, g
#redone {color: red}
2 q; H1 T, l) E</style>
( V2 L: y" i4 \1 |) U2 H; X8 o. Y <P ID="redone">text here</P>
' F+ F; U2 X* J( ]text here# _2 v% d; e+ W4 K3 R+ p6 F
- v: X* A: }5 h z0 x/ z
3 {* S R7 s2 y$ r1 W+ p; M/ w$ @: {2 y! L5 T( S) u8 K
" z2 ^, m4 m" N
你可能覺得既然 ID selector 和獨立 class selector 功能一 樣, 為什麼兩者都存在呢. 如果你知道用 CSS-P 來定位的話, 你就明白它們的區別了. 有 ID 的 HTML 元素可以被 CSS-P 和 JavaScript 來縱. 9 K) V# G8 S* I8 D/ O
0 W/ ]9 T Z. m8 o1 c到現在為止, 你已經大概知道如何來寫 CSS 的定義了, 下面我們將會告訴你如何用 CSS 來縱或修改 % f: V) ?1 M' D6 [7 s, J
: f+ j7 Q; T! r, [/ \5 Z" V! C# b
字體 ; O( \* N& e+ P5 p1 q
文字間的空間 ' ^/ ]2 C/ O4 y0 H! Q9 V2 s! H }
列表 7 V# P/ l1 ?6 t& L3 q) y
顏色 ) c% R8 G8 _1 K. ?2 T5 V
背景
2 L' z6 y5 X3 |) sMargin
2 t1 O8 o5 Y, \, V3 Y+ R% Y位置 |