上一節開始我們討論 CSS (Cascading Style Sheet) 的基礎. 告訴你有三種 Selector. 但只介紹了其中的 HTML selector. 這一節我們把三種都詳細介紹給你
3 R: s$ B, t7 B" _/ X# S$ V3 m" `5 P2 C
HTML selector
6 b$ @& \) R' cclass selector: " J" R# e$ j- d2 d. m, {3 M
ID selector: w+ \" }# j# q, L, S" z# B) w
HTML selector 1 F% A' \8 ^; U; K3 r0 T% U
5 \3 m% E! W5 W! W' E
HTML selector 就是 HTML 的 tags, 比如 P, DIV, TD 等. 如你用 CSS 定義了它們, 在整頁中, 這個 Tag 的性質就按照你 的定義來顯示了. HTML selector 的語法如下 ) w2 J m5 [' I; I7 n- G
' p( `. p) ` f H% T$ w tag {property:value}
/ W' {" E6 [! F# ?比如我們想叫 H1 的顏色是紅的
9 t. v+ J+ Z4 u, X! _. i. W1 s! l7 W+ G3 B! |, a ?. H$ I6 D
H1 {color: red}6 s! X) W+ @4 ^5 E0 t8 s, u# Z3 A
這裡還要告訴你 CSS 的一個特點, 它可定義好幾個 selector 在一個 rule 裡. 比如
7 `$ n6 r$ S3 u3 k
$ B5 H. G1 Q$ v2 r: K5 t) u$ x- } H1, H2, TD {color: red}
( W3 V5 {4 ^2 p1 d' u! J, e這個定義就能讓所有的 H1, H2, 和 TD 的顏色都為紅色.1 X& R. W q, i: t- j* S
. L* g; z3 R+ k- b5 b$ g& B" FClass selector
: ^. ~8 I) m" L* }: T0 r5 c( }0 N4 v
Class selector 有兩種, 一種叫相關 class selector, 它跟一 個 HTML 的 tag 有關係. 它的語法是
6 _) j! w6 x; N9 }
- j+ u1 C$ g1 S2 I tag.Classname {property:value}
% E) l8 v! W; t+ u/ s7 ?比如我們想叫一些而不是全部 H2 的顏色是紅的
, e: W1 g2 g/ Z. n: A0 N; b, k% s8 P* w2 ^3 |% N
<style>
9 l$ _! ?# z% u0 e9 e H2.redone {color: red}
- G5 i% s* [0 E* G8 G</style># I. f5 P# z* c
/ p/ U8 N; W+ T- {% C<H2>This is H2</H2>
4 C( p( ?* s+ \# E<H2 class=redone>This is red H2</H2>
( t' v- y* }: J9 |1 `; aThis is H2
6 Z: `% [ |2 BThis is red H2 " d" S" ?6 `2 L5 z; w& Y+ S, e
- a1 O3 c) |" y& s3 h' K+ L& V' H O* k- ~. c1 K4 L/ f
6 Z' U4 M8 ^0 t+ `8 z; J: X. E
第二種是獨立 class selector . 它可被任何 HTML tag 所應用. 它的語法如下
- W; y& I4 P* l
7 `- h$ g3 P2 h9 C: M8 X3 u .Classname {property:value}/ }. V7 P7 ]" D) C. G. y
假如我們有下面這個定義
3 U: f* v3 ^: g6 b3 A2 O7 I" Y; S" _0 S: T0 J
.blueone {color: blue}
8 U9 O' h. S4 k3 F1 [( }' G7 S) y那麼我們可以把他應用到不同的 Tag 當中去. 比如
+ h) D. n8 a; ?9 i- ?
* h8 r7 B% l6 l% u/ ?# V<style>9 h( z* U- k6 {/ _& L$ u
.blueone {color:blue}
2 ?1 @3 o- H' }</style>
8 B$ N2 w" e: ?1 H<H2 class="blueone">Blue H2</H2>
% o; {% `: r% E5 _. q0 X) Z6 K<P class="blueone">Blue paragraph</P>! z I2 z8 `, b7 o0 Q& O
Blue H2" n" Y$ S7 g W# r8 J, t
Blue paragraph
9 y0 ]; H! Z" x $ S. G; c* x3 E3 F6 k; n
) G. S) a1 ^0 ^7 h
1 c6 V6 V9 x0 h% v1 g% C$ z4 e' ^8 ~( w b$ O
顯然 class selector 給了我們更多的自由.
$ q' W0 M4 A: g/ K
& |* S- @# k9 f5 j% c6 }ID selector
6 p; O4 q* D8 \* l0 C. R6 t S0 o. D, `% g* }2 y- w- o
ID selector 其實跟獨立 class selector 的功能一樣. 而區別在於它們的語法和用法不同, 以及對於 Javascript 縱 HTML 元素有幫助. 它的語法如下 1 E, W; j% i, {4 }. j( h& h- b7 l
$ C1 L8 Q) Q& h7 c& I6 k- e) h #IDname {property:value}7 M; {" U4 Y2 K5 X# V
假如我們有下面的定義
Q; [; K% b: t
$ F/ {: @ q# f! L r #yelowone {color: yellow}4 S Z3 q$ ^; t9 e8 j) K
我們可以運用這個定義到任何的有同樣 ID 名字的 tag, 比如 " D' T/ \: O7 c. S" Z+ z3 z
Q/ Y) M4 e4 g4 h1 T1 y
<style>0 A- @' E8 w/ t" R9 D
#redone {color: red}7 V! [# V- ^' U7 }9 Z( x$ l6 F
</style>
8 C I" \* \" t4 ^& t- l. { <P ID="redone">text here</P>1 X% f- ~0 @1 ?4 x* D* H
text here6 z$ w# @# K! x
8 B# [$ h( n9 e$ ^2 K8 W8 d ( T/ `8 u- P! ?1 E9 C! R
# c2 a9 {: _. N% c. F) G" K8 u
; e8 k7 f4 i$ @+ h( R/ B( v$ v你可能覺得既然 ID selector 和獨立 class selector 功能一 樣, 為什麼兩者都存在呢. 如果你知道用 CSS-P 來定位的話, 你就明白它們的區別了. 有 ID 的 HTML 元素可以被 CSS-P 和 JavaScript 來縱. ) O" d, R" v9 f& Z# `. g
) u* ?5 Y" a, q- C+ n
到現在為止, 你已經大概知道如何來寫 CSS 的定義了, 下面我們將會告訴你如何用 CSS 來縱或修改 " w+ V, y( E; D* b) j' i2 J
* Q* A9 ~% N# j0 q
字體 / P- {6 }! p. Z& q. s, O/ {
文字間的空間 5 @) a- N! a, J, B( H: L
列表
" ?# ~% f( }( D2 O; ^3 t( I顏色
! x' a, L/ e* x M2 r3 `背景
/ K: z: x, [* M! \: @0 @/ C( tMargin ; g) t/ @4 T- A6 |3 F
位置 |