过期域名预定抢注

 找回密碼
 免费注册

[轉]Div+CSS佈局入門教程

[複製鏈接]
發表於 2007-5-9 22:08:40 | 顯示全部樓層 |閱讀模式
Div+CSS佈局入門教程, f( X, l+ t9 |! g
# p5 r: N5 E9 B5 H. d
轉載請註明出自落伍im286.com,本貼地址:http://www.im286.com/viewthread.php?tid=1965636( Q+ s  g3 a: c2 U+ e
' \6 a' }. B3 R

1 E. }" u+ o+ L, t一、頁面佈局與規劃
+ o( Z& m) {7 f# _3 o: C! b
1 z: J' ~5 T; C$ p  好久沒有認真寫點東西了,想起最近這些時間經常有朋友問到我有關於DIV+CSS佈局的問題,其實歸根結底還是由於沒有入門造成的。那麼接下來的這篇文章就帶領大家入門吧...2 U& N& C7 n' c4 X# S) b

+ l" E% R8 O2 V+ R# L9 v  在網頁製作中,有許多的術語,例如:CSS、HTML、DHTML、XHTML等等。在下面的文章中我們將會用到一些有關於HTML的基本知識,而在你學習這篇入門教程之前,請確定你已經具有了一定的HTML基礎。下面我們就開始一步一步使用DIV+CSS進行網頁佈局設計吧。
1 c; M- ~% R! H; r3 @
6 k3 @" p- z6 B; Y5 {  所有的設計第一步就是構思,構思好了,一般來說還需要用PhotoShop或FireWorks(以下簡稱PS或FW)等圖片處理軟件將需要製作的界面佈局簡單的構畫出來,以下是我構思好的界面佈局圖。$ l5 [6 o' k) Y* Y1 E
! J7 H: i1 }: p
  下面,我們需要根據構思圖來規劃一下頁面的佈局,仔細分析一下該圖,我們不難發現,圖片大致分為以下幾個部分:
3 k, b0 q6 T6 n  x  1、頂部部分,其中又包括了LOGO、MENU和一幅Banner圖片;3 U5 G6 Z7 j4 N4 X1 \0 ^) Y
  2、內容部分又可分為側邊欄、主體內容;  w) N  V( r& d8 p. v0 _( ~5 {8 I
  3、底部,包括一些版權信息。, J2 W/ ^# ]% x; v2 d* Z
  有了以上的分析,我們就可以很容易的佈局了,我們設計層如下圖:
6 w3 k3 }1 b" k9 B6 V  根據上圖,我再畫了一個實際的頁面佈局圖,說明一下層的嵌套關係,這樣理解起來就會更簡單了。
8 x/ Q. ~3 |/ G: n/ _
% h3 L# w! Q$ x! e# Q' L  DIV結構如下:) V5 p; J6 g' R) l6 m
  │body {} /*這是一個HTML元素,具體我就不說明了*/
) a" c6 F) z( d" X1 c5 e  └#Container {} /*頁面層容器*/& W# _, [7 u6 A" f& t9 R
     ├#Header {} /*頁面頭部*/& U/ j9 x# D- I1 U  S6 M
     ├#PageBody {} /*頁面主體*/6 o; G  |9 V) [2 q
     │ ├#Sidebar {} /*側邊欄*/
9 A! Y6 e' E& b7 M6 S' `" r& E, L     │ └#MainBody {} /*主體內容*/8 U. E: T" P% Y9 V" a1 d
     └#Footer {} /*頁面底部*/4 F& F0 ?$ W+ }  H% b2 c+ A& Z
  至此,頁面佈局與規劃已經完成,接下來我們要做的就是開始書寫HTML代碼和CSS。
9 s& V& S( P; F' O8 k" C& U& C8 A6 n3 P. f3 Q

$ x$ ~9 F6 j* m& X二、寫入整體層結構與CSS
1 c, {: j/ M8 v8 p" O' d; Y3 N4 n3 Q& \- ^& U, I3 B' q( k  ]5 G
  接下來我們在桌面新建一個文件夾,命名為「DIV+CSS佈局練習」,在文件夾下新建兩個空的記事本文檔,輸入以下內容:
0 l. q, d& I5 J( [ 程序代碼7 h3 q8 Z4 I; u$ S9 B+ f. O
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
% z4 M' k9 \; B+ h<html xmlns="http://www.w3.org/1999/xhtml">4 M( U. @- x2 ^  j1 r
<head>
  l) X0 Y0 o! `, U# x- N, R; B<meta http-equiv="Content-Type" c />
: V; }$ ?# s7 }2 v: |4 @  Y<title>無標題文檔</title>
  S3 T3 \" ]* v. N! F% ]<link href="css.css" rel="stylesheet" type="text/css" />! h& ?9 l1 `; T
</head>
5 l/ P* H% i- R6 H- e
+ w9 x  _( |/ t0 A7 C! e( a7 g<body>7 G' {" r8 U# @6 _# O6 L
</body>
+ o/ {: O4 ?/ x5 S' a</html>
, {7 k0 X* m# r: [1 i# Y3 O5 ]7 B
* f- s( _% ?) [' Y2 p. R

" ~# R& w7 w/ Z4 M# e7 C' K  這是XHTML的基本結構,將其命名為index.htm,另一個記事本文檔則命名為css.css。# \: O/ U& O6 X7 c+ I% K
1 Z5 c0 R# F* w
  下面,我們在<body></body>標籤對中寫入DIV的基本結構,代碼如下:
4 E8 V, O( z1 O+ E
7 v4 N2 c- ~. p8 [* U/ q 程序代碼
" j+ a$ I9 [" d
4 D& Z2 U( R6 ~  p3 D! i<div id="container"><!--頁面層容器-->
& K2 @$ Z) p4 `( a' U  <div id="Header"><!--頁面頭部-->; j; E* j: Q! G# w3 G7 i0 J
  </div>( |/ S, V1 k, r' h) z8 U& F
  <div id="PageBody"><!--頁面主體-->; e: O' S: A7 n  L/ T
    <div id="Sidebar"><!--側邊欄-->$ O" F0 d. {+ G6 r
    </div>
. I" X4 J) o" F1 v" B    <div id="MainBody"><!--主體內容-->" b7 {4 D* Y) a- I
    </div>- O6 e! }1 v0 z
  </div>6 x1 u$ ^' ?- F, r0 J/ x& `9 n
  <div id="Footer"><!--頁面底部-->3 o; S; K7 W4 S+ h6 j4 J" ]( U
  </div>0 k# s; Z) B- J- d! p6 {* Y1 Z
</div>( A% O7 [/ T; _2 ^7 \) l8 Y
4 ~3 j3 f* R" V8 G% b0 m( }6 w& E! s

! ?* c0 }1 F$ }. j
- ]1 ~8 L. Z7 ^/ I$ v7 h  為了使以後閱讀代碼更簡易,我們應該添加相關註釋,接下來打開css.css文件,寫入CSS信息,代碼如下:
5 R" P7 _4 j1 O; |$ h; e1 r0 D& ], Z* e3 z6 }
) a# ?) A9 X7 m( I3 {% p" W
程序代碼
# h1 k3 g; [% U8 [. _- F1 o
4 m+ @7 d2 r  B# f% c+ B  A/*基本信息*/
3 J0 c# u2 D% qbody {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}7 s2 z0 J, \, b

' A- o3 D  v1 }. t/*頁面層容器*/
4 T7 a3 U' D4 c% I: W#container {width:100%}
5 w9 G; r' s: d. w2 |
- j2 J1 g1 a2 o% ]/*頁面頭部*/
/ {. ]: [$ n/ U#Header {width:800px;margin:0 auto;height:100px;background:#FFCC99}$ [) x8 s* S3 l% E3 A
" u4 A7 F  ^) f% R8 z1 r2 b
/*頁面主體*/7 H" ~/ v1 N9 a$ F
#PageBody {width:800px;margin:0 auto;height:400px;background:#CCFF00}
. x% B  N* I. E5 Y) p
6 |" h. Q1 s) M8 e5 M8 ]  ?4 R/*頁面底部*/
9 R; w+ v5 `* y/ X5 {: z* O2 I* J#Footer {width:800px;margin:0 auto;height:50px;background:#00FFFF}
* n+ E& T  r8 F
) L4 s7 c; X8 w/ J% \9 A& Y- q
! T' x8 @5 ~; {# X5 Q1 v% g+ V* k* a2 p
  把以上文件保存,用瀏覽器打開,這時我們已經可以看到基礎結構了,這個就是頁面的框架了。, E& ^9 I) X" `0 [8 }( k
  關於以上CSS的說明(詳細請參考CSS2.0中文手冊,網上有下載):8 I7 w# l6 U( u, Q5 q
8 B7 n& ~. g+ [
  1、請養成良好的註釋習慣,這是非常重要的;
6 r* K3 K8 [5 a  W( c
/ I% A0 S; R& ]& Z( W* Q2 ~  2、body是一個HTML元素,頁面中所有的內容都應該寫在這標籤對之內,我就不多說了;/ u' Q5 \1 o& B# w/ _% f& y

- x; [; c4 M  b  3、講解一些常用的CSS代碼的含義:  E: n1 P: C" S+ D5 m% n3 R

  Q3 ~0 h$ G. t2 c1 e    font:12px Tahoma;
/ C* f7 @; ~. R7 R. |- `) \    這裡使用了縮寫,完整的代碼應該是:font-size:12px;font-family:Tahoma;說明字體為12像素大小,字體為Tahoma格式;( ?( r6 `, P, K. C3 l7 h. O; f
7 B7 p) o. t- e
    margin:0px;
1 ?1 ^/ d% T* }    也使用了縮寫,完整的應該是:1 o; c  b8 R" U
; o0 A3 d' S# f- k2 z
    margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px
! {* O/ ^0 A* S! S$ P6 U    或
% J+ l. Y: \, E    margin:0px 0px 0px 0px7 v4 \3 r  r4 ]8 @2 V
. ]4 U  a6 p& [
    順序是 上 / 右 / 下 / 左,你也可以書寫為margin:0(縮寫);& s# s/ G' e/ C0 `
    以上樣式說明body部分對上右下左邊距為0像素,如果使用auto則是自動調整邊距,* K' d, l& a' C0 d
    另外還有以下幾種寫法:) e' U/ k* ~/ o$ H; n1 q
    margin:0px auto;
" \7 Z, B2 z3 e, |! G    說明上下邊距為0px,左右為自動調整;1 C3 }" p' ]* D2 S+ O! J7 s
    我們以後將使用到的padding屬性和margin有許多相似之處,他們的參數是一樣的,, S0 Y1 k* ^  {# G# s
    只不過各自表示的含義不相同,margin是外部距離,而padding則是內部距離。4 b: I+ d8 v) ~9 M
& e& t3 M( J1 e
    text-align:center; P0 X' U/ u, |6 \: E/ L
    文字對齊方式,可以設置為左、右、中,這裡我將它設置為居中對齊。
) C) p: A/ x) i8 N* r. o' E! Q- }5 e2 `( g
    background:#FFF
5 K+ }6 ?! l' `/ w6 e    設置背景色為白色,這裡顏色使用了縮寫,完整的應該是background:#FFFFFF。! _# X. i0 {1 \/ `
    background可以用來給指定的層填充背景色、背景圖片,以後我們將用到如下格式:
1 L, @8 q1 K* d, x! B3 |    background:#ccc url('bg.gif') top left no-repeat;0 l  N6 f0 {1 w* h
    表示:使用#CCC(灰度色)填充整個層,使用bg.gif做為背景圖片,
* H5 @; H/ v0 S! H. N9 l4 V    top left+ E' ?: ^6 R! W: P" Q" M. ^, b
    表示圖片位於當前層的左上端,no-repeat表示僅顯示圖片大小而不填充滿整個層。8 B" |% y; }( {% d
    top/right/left/bottom/center( E; d  h+ R! C) O$ P
    用於定位背景圖片,分別表示 上 / 右 / 下 / 左 / 中;還可以使用, v5 @3 ?: c: W& S4 l$ u
    background:url('bg.gif') 20px 100px;
- Z0 _7 D) q4 f- s+ Z- t0 a    表示X座標為20像素,Y座標為100像素的精確定位;* D, G5 P& D0 V! ~. ^, F/ w
    repeat/no-repeat/repeat-x/repeat-y" |( f) g& C1 H- |( L& X  m1 F8 _
    分別表示 填充滿整個層 / 不填充 / 沿X軸填充 / 沿Y軸填充。
2 W$ b! d2 w3 r2 d5 h
4 C, M+ L  R' m    height / width / color 2 C0 u, g. K# ~. k8 G3 U
    分別表示高度(px)、寬度(px)、字體顏色(HTML色系表)。
- A3 o8 {0 K: s  W- G3 ^% y
% ^; r* j7 g0 V& d' ?  4、如何使頁面居中?
6 A8 J6 O. t3 G- R/ V2 A0 r. V    大家將代碼保存後可以看到,整個頁面是居中顯示的,那麼究竟是什麼原因使得頁面居中顯示呢?# x& P2 q' m$ L. Y$ v) K2 Z# a
    是因為我們在#container中使用了以下屬性:
  v9 P* y, g: t' R; K    margin:0 auto;
4 f$ l+ r8 ^( E6 M7 i0 s    按照前面的說明,可以知道,表示上下邊距為0,左右為自動,因此該層就會自動居中了。9 A3 o! x, f" Z$ y+ M: b! [
    如果要讓頁面居左,則取消掉auto值就可以了,因為默認就是居左顯示的。& e4 z& N5 a# G9 n0 l) c
    通過margin:auto我們就可以輕易地使層自動居中了。
3 O. O- o' J' o- |  }7 ~  y' e# V* t0 E" _! ?( a& A' W
  5、這裡我只介紹這些常用的CSS屬性了,其他的請參看CSS2.0中文手冊。
現在進入貼吧,不用註冊就可以投稿了,把你的心情和經驗與大家一同分享吧!!請到相應的貼吧發貼哦,貼吧新開,人太少,不過希望大家能支持!!謝謝 點擊這裡【我要投稿】
6 U, B. q* s5 e+ r
( L- v5 v3 B* r; e, h0 A三、頁面頂部製作(1)' ]6 g7 u6 L2 h( m# R' M+ ~6 c
6 S& E% T( e# {. J9 p3 s4 {: j
  當我們寫好了頁面大致的DIV結構後,我們就可以開始細緻地對每一個部分進行製作了。
* j5 i. M3 M4 t+ `' e
1 m2 C+ M( h0 @8 \  在上一章中我們寫入了一些樣式,那些樣式是為了預覽結構而寫入的,我們把css.css中的樣式全部清除掉,重新寫入以下樣式代碼:8 A" ~. |2 T5 ?
9 z5 q" X3 M3 S* L/ T* V, Y
程序代碼( Y9 W1 Z( D1 C, }
/*基本信息*/5 t" @5 z2 f- c  l4 P
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
. E8 X0 @# }/ ~; ~" {a:link,a:visited {font-size:12px;text-decoration:none;}! f! y1 v2 ?" i3 q4 W
a:hover{}
' Y- ?* U& A! W9 i( S
. K5 f& D8 ~4 k+ A) B5 d% B" R8 i/*頁面層容器*/" @2 c! D6 ^  P2 l
#container {width:800px;margin:10px auto}' l' _6 f0 J! h1 x+ _

( p) X0 F" l+ @& I9 `6 }, Y: r* \+ M5 j" O. m
  樣式說明:: x+ e7 W7 n7 [- `+ e( T

/ Y* Y) l. Z4 G5 U4 v9 T  a:link,a:visited {font-size:12px;text-decoration:none;}4 H; X$ f1 K+ B3 _* w
  a:hover {}
( i/ k* w; s) Y2 i. F7 v3 t+ v/ N4 b
. R( ^9 G+ e, f8 u( h
  這兩項分別是控制頁面中超鏈接的樣式,具體我就不說明了,請大家參閱手冊。1 C' c0 f% ~- `

3 Z7 e8 K; V7 d9 U8 J: j  s5 P  #container {width:800px;margin:10px auto}4 G$ g3 z& z6 c. u) P) ^
( |- t- k- D1 y( v- B: {( _
  指定整個頁面的顯示區域。( t2 ~* x' y) n2 F1 b
  width:800px指定寬度為800像素,這裡根據實際所需設定。0 L6 ^  |- ^, k
  margin:10px auto,則是頁面上、下邊距為10個像素,並且居中顯示。" ]$ {9 h: V- E: ?" S2 N/ n
  上一章中我們講過,對層的margin屬性的左右邊距設置為auto可以讓層居中顯示。
* Q$ Q( b8 c0 w. E) ^5 G8 y$ A
  接下來,我們開始製作TOP部分,TOP部分包括了LOGO菜單Banner,首先我們要做的就是對設計好的圖片進行切片,以下是在FW下完成的切片:
9 |2 {, [- u5 P0 @  我將TOP部分切片為兩部分,第一部分包括了LOGO和一條橫線。由於LOGO圖片並沒有太多的顏色,這裡我於是將這一部分保存為GIF格式,調色板選擇為精確,選擇Alpha透明度,色版為白色(此處顏色應與背景色相同),導出為logo.gif,圖像寬度為800px
" @* Q& Q9 @. A& N( p% l$ r+ p+ R$ l! m. j0 o% e! c3 z
  到這裡,有的朋友就說了,* 為什麼要使用GIF格式?使用JPEG不是更好嗎?
  `4 Z% ]# t& h. B$ h/ v4 u  因為GIF格式的圖片文件更小,這樣能使頁面載入的速度更快,當然使用此格式之前必須確定圖片並沒有使用太多的顏色,當我們使用了GIF格式時,從肉眼上並不能看出圖片有什麼太大的變化,因此這是可行的。
  D1 a* R+ D1 S( `& J" s  W5 B, n' e: r& I3 H& p
  * 接下來的Banner部分還能使用GIF格式嗎?
9 `, R8 x& W: P! G, \, C, K  答案是不能,因為Banner部分是一個細緻的圖片,如果使用GIF格式顏色會有太大的損失,所以必須使用JPEG格式,將文件導出為banner.jpg# ^5 f1 D; j7 c2 X. X" _9 e& X6 W) A

3 r; e* y% l) A) _* L  * 合理的切片是非常之重要的,因為切片的方法正確與否決定了CSS書寫的簡易程度以及頁面載入速度。
$ A3 [, k+ s' r3 p( H, P& p" t
  切好片後,我們還需要對TOP部分進行分析並將DIV結構寫入Header中代碼如下:6 S8 O2 p2 z# {* \$ [
/ O# f8 K" j. |& s7 I
程序代碼$ n3 B! q5 p. n: }7 _- c
  <div id="menu">
- b8 H7 ^, A5 v0 R+ @/ G( E! i   <ul>
) O0 g( r2 R4 }    <li><a href="#">首頁</a></li>' |' |4 k/ r( v1 h0 K$ w: w
    <li class="menuDiv"></li>
0 Y3 |6 G; q; Z$ [  N9 G' t    <li><a href="#">博客</a></li>& R# A" O8 X1 N4 W8 K$ r# m0 f/ t7 K7 e
    <li class="menuDiv"></li>
  w3 t6 C  b6 }3 T/ D    <li><a href="#">設計</a></li>$ N5 L( }3 v6 z3 `' P
    <li class="menuDiv"></li>- o/ T  Z& H9 @. R7 N, g
    <li><a href="#">相冊</a></li>
4 M  E, z! H8 V  J. _  S    <li class="menuDiv"></li>% [% m. y+ y: p8 ]& `. @3 t5 y- z
    <li><a href="#">論壇</a></li>) o: ~; m6 b- R" }: U5 A1 _
    <li class="menuDiv"></li>3 N! C! w/ G' f' ]: x
    <li><a href="#">關於</a></li>
: T0 Y7 m' \- Q  r% |   </ul>
- \( U' `- ?" j+ u; a  \" K  }  </div>
8 H- C& j& Q9 `- T+ `/ `  <div id="banner">
4 g$ l$ }+ w( T7 l" C- O- @  </div>* f9 ^$ F6 k% d1 @& J2 W1 Q1 M

' \& m5 B' q& z# }. c) W. z9 I% q! ^. m# h; P
  為什麼要這麼寫呢,因為對菜單使用列表<li>形式,可以在以後方便對菜單定制樣式。& `" Q: i2 ?* W1 s
1 V" C( w# G& I
  而為什麼要添加以下代碼呢?' R+ s! r. q. P& z
  <li class="menuDiv"></li>5 {; i; X( D% E8 ~7 j1 B0 Z
  插入這一段代碼是可以方便地對菜單選項之間插入一些分隔樣式,例如預覽圖中的豎線分隔
, K. D' K: Z: C6 ^# B; b" K1 Q2 D9 Q  U8 v+ @  P  x
  然後我們在css.css中再寫入以下樣式:
: n: p0 I. B$ Y# n1 {5 ~+ G; {( V5 z
程序代碼+ z" E9 U3 N7 [3 p. k# s
/*頁面頭部*/: G& J* d8 `7 w$ }
#header {background:url(logo.gif) no-repeat}9 b: D) v6 o/ u) i/ T0 S
* p  p2 |3 k( Q9 w
3 g' T$ q: i3 _  Y! T
  樣式說明:
) N1 m  Z# l; d  #header {background:url(logo.gif) no-repeat}9 @/ v5 n! d/ o: ]5 D* c
  給頁面頭部分加入一個背景圖片LOGO,並且不作填充。
: @# M! _) E& s9 V' f# G( [2 D) E$ j5 X- G" I# ?: n; l- C3 o
  這裡,我們沒有指定header層的高度,為什麼不指定呢?$ f- k0 M6 Z/ Y* c# n' n

8 K1 h: {+ p' k" T: ]  因為header層中還有菜單和banner項,所以層的高度暫時是未知的,而層的屬性又可以讓層根據內容自動設定調整,因此我們並不需要指定高度。* Q8 n# i* W' z8 k
   現在進入貼吧,不用註冊就可以投稿了,把你的心情和經驗與大家一同分享吧!!請到相應的貼吧發貼哦,貼吧新開,人太少,不過希望大家能支持!!謝謝 點擊這裡【我要投稿】
* V8 b" `" f: f$ e. j# v. o1 ^, I5 J4 Q3 k9 E5 i
三、頁面頂部製作(2)----使用列表<li>製作菜單
7 Y+ j* y" d# J- N! [4 o+ \. c
* E7 f! Y! J$ H# h. U& Q5 F# R  開始此節的學習前,請確認你已經參照之前的幾節內容寫入了DIV、CSS到index.htm和css.css文件中。
- Q9 e, _; e* f  t  這一節我將告訴大家如何用列表<li>來製作菜單。 + O: P6 X; A/ ?& o' Q
程序代碼4 i. y% E2 ^0 ~1 b# _
        <div id="menu">
: x* O1 X  A3 t          <ul>3 l4 H2 n" f7 D# h
            <li><a href="#">首頁</a></li>
+ U/ ]" P0 X, F  S8 B% ]            <li class="menuDiv"></li>6 e, _$ s# d. d
            <li><a href="#">博客</a></li>/ c9 R: j) X$ \' K6 o( G. x# i
            <li class="menuDiv"></li>
3 R& T. t3 n6 v3 @0 r5 K            <li><a href="#">設計</a></li>
# w9 g5 s+ A; |# p- p- ]            <li class="menuDiv"></li>2 B) G# H6 S% `5 W% N
            <li><a href="#">相冊</a></li>
: o3 _9 b& |- ^5 @* ?            <li class="menuDiv"></li>
  O; \0 J1 v* m5 ?3 {6 L            <li><a href="#">論壇</a></li>  e6 L( ]( L* C
            <li class="menuDiv"></li>0 I+ @2 ]# \: M7 G
            <li><a href="#">關於</a></li>
# ~+ T! m" \: {. U5 M          </ul>3 O$ e+ C" r4 }2 L7 }4 A* G
        </div>1 C8 {2 O  e$ J8 ?  j

  `7 F, b" q; M2 V6 C* @; \! a. {( O" H! b; t9 B
  以上是這部分的結構,有關於<ul></ul>、<li></li>這兩個HTML元素大家自己去參考相關的內容吧,它們最主要的作用就是在HTML中以列表的形式來顯示一些信息。# k% ]" Z  w  r; V; {0 o. X
2 N! o' m' D& {/ c8 a; Y9 }
  還有一點需要大家一定要分清楚的,當在HTML中定義為id="divID"時,在CSS對應的設置語法則是#divID{} ,如果在HTML中定義為class="divID"時,則在CSS中對應的設置語法是.divID。
  D4 g: I) o9 z) y1 ]& ]  如果id="divID"這個層中包括了一個<img></img>,則這個img在CSS中對應的設置語法應該是#divID img {},同樣,如果是包含在class="divID"這個層中時,則設置語法應該是.divID img {},這一點希望大家要分清楚了。+ }( k" L  y8 t4 @; U
  另外,HTML中的一切元素都是可以定義的,例如table、tr、td、th、form、img、input...等等,如果你要在CSS中設置它們,則直接寫入元素的名稱加上一對大括號{}就可以了。所有的CSS代碼都應該寫在大括號{}中。
+ W4 s1 L( q, o2 L$ o& p, I& o8 j# X, d
  按照上面的介紹,我們先在css.css中寫入以下代碼: ! k" |% B% l) g2 R$ s& k
程序代碼
9 d! c9 t! E3 l' B% Q#menu ul {list-style:none;margin:0px;}, d1 @4 v& [* T8 `1 y
#menu ul li {float:left;}  x7 B; Z# ?: e" T- O
& Y4 u3 x+ B2 K& I

. i- d$ q3 r! n3 a, u  解釋一下:0 ?- |& S% c# m
  #menu ul {list-style:none;margin:0px;}* S8 N7 U/ t+ o0 b
  list-style:none,這一句是取消列表前點,因為我們不需要這些點。
: }: U7 ^3 u2 P/ r  Z  margin:0px,這一句是刪除UL的縮進,這樣做可以使所有的列表內容都不縮進。
. \3 O9 D$ ?$ z- B
/ r5 \, n5 V1 [0 c+ m7 v3 l' h6 H  #menu ul li {float:left;}
3 r6 n* }, ~* ^" t( \) ~- r  這裡的 float:left 的左右是讓內容都在同一行顯示,因此使用了浮動屬性(float)。- _' E5 a9 i1 T; m
7 N% `( d$ b% p% J- W% g  N: k
  到這一步,建議大家先保存預覽一下效果,我們再添加下面的內容,效果如下:' Q8 j0 I1 q1 R9 f& I$ ^- o, J/ Y

% B/ `9 e7 q$ E
5 k  o+ r+ }; F
* N9 s) \* X& R5 P  這時,列表內容是排列在一行,我們在#menu ul li {}再加入代碼margin:0 10px
8 ~9 U5 {" ^4 T 程序代碼
# `: k8 M0 Q1 C9 ~+ H+ S% [3 i* l#menu ul {list-style:none;margin:0px;}0 h3 O) w; ~% r* v- D! t0 ]- o; G9 x1 {
#menu ul li {float:left;margin:0 10px}
4 ?, p9 b: c9 r/ A7 J1 @6 T. f9 \# s3 R& G/ B9 H

( f5 A3 @4 z; H7 ^3 J  margin:0 10px的作用就是讓列表內容之間產生一個20像素的距離(左:10px,右:10px),預覽的效果如下:( m" n1 H' B- W+ ]% Z
' z9 ?5 q) N: |6 `$ b6 C: v5 C
+ ~5 k8 c! j" ^+ p
  現在,雛形已經出來了,我們再來固定菜單的位置,把代碼改成如下: 8 ?9 x. Y& c3 q9 [
程序代碼. i2 b1 m0 z) r. r
#menu {padding:20px 20px 0 0}% ?- S" B4 q) y
/*利用padding:20px 20px 0 0來固定菜單位置*/# b- `! U4 Q: R& S7 }
#menu ul {float:right;list-style:none;margin:0px;}
! n; y9 v/ |, r6 p7 S1 [6 @5 ^/*添加了float:right使得菜單位於頁面右側*/
- ^8 p% i+ i2 r1 e8 p; _#menu ul li {float:left;margin:0 10px}
1 H7 U! u- l6 W. ?" C3 m# [2 q- H
$ f: A- n% ~, {# t* T5 a# A6 u+ O# {  |# U3 X- s

& [3 R) a; u% c" V% O: M. f  這時,位置已經確定了,可是構思圖中,菜單選項之間還有一條豎線,怎麼辦呢?. B7 D/ x- W- A. }+ f. N2 V
  別忘了,我們早就已經留好了一個空的<li class="menuDiv"></li>,要想加入豎線就使用它了。
  f* }) p( ]/ F+ Y% v  按照上面說的方法,我們再添加以下代碼: ' ^! m3 k0 d% V+ E9 {
程序代碼9 w0 T- T6 @% `, C+ Z/ z
.menuDiv {width:1px;height:28px;background:#999}
6 l0 Z2 G  I) F6 s$ w( g4 O7 O; ]: c# q& Q! a' }9 I4 }/ Q( n2 H
,保存預覽一下,豎線是否已經出來了?關於這段代碼就不多講了,應該是很容易理解的。
( x3 {" B, i: E/ b! D% ]9 P# e1 {. T' |4 L
3 F7 s) @" M! ]3 H6 v9 r( c

/ n, A- o7 q2 M" Q  不過,菜單選項的文字卻在頂部,我們再修改成以下代碼:
4 h+ q( g, i: x5 r$ a9 t) h程序代碼
" c4 C6 w7 b( }% v$ H#menu ul li {float:left;margin:0 10px;display:block;line-height:28px}2 ^7 w: v- }* j' y! E
6 h! {# Z) I8 J" `) u. ]
/ g  M, k3 y8 v
  關於display:block;line-height:28px大家可以去參閱一下手冊,我就不多講了。
/ q& ?# A0 H, l5 M2 c
0 c) y4 ^( S# j, T* ~  效果基本上已經實現了,剩下的就是修改菜單的超鏈接樣式,在css.css中添加以下代碼: " q8 b* v# b! \% N2 D* P
程序代碼* \- ?0 p$ w) \4 r- x" A
#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
8 W& N$ \8 Y; Q/ c, s, ?: D+ ^#menu ul li a:hover{}+ A0 E( |- x4 }" M

0 z% ~. |& b) V
( ^) u& y" n; V  c! O+ I  這個也不多說了,沒什麼好說的了,最後的效果如下:
& e1 V' u$ K9 k9 k0 [
0 ]+ V) n/ _$ d/ [. y4 H9 r# [
# Q3 H1 I; L/ ^! H, A, h
) c3 w) o2 a9 V% p2 h  這一節到這裡就完畢了,順便把素材提供給大家:7 U. M/ Z# ]0 P) D, \
  構思圖: 點擊下載7 q6 P" L6 p, [# [5 c9 ?/ y
  HTML和CSS源文件: 點擊下載6 L  J4 |6 o' u9 u4 ?0 q
四、頁面製作(1)----用好border和clear
9 K( D( C9 s% ?
/ c" d; ?9 B$ U$ `% D& x1 A5 M
  由於找工作找房子的原因,隔了這麼久才能開始寫教程,心裡感覺很對不起一直在關注本站的朋友,今天是找到房子的第二天,於是趕快繼續寫教程。% U4 ?3 n5 C; l: @  e
4 P1 ]9 M: j9 H
  這一節裡面,主要就是想告訴大家如何使用好borderclear這兩個屬性。" X: N) [- Q9 w* I% X' J0 y

/ |" U" A& W) [1 s' _# p1 b  首先,如果你曾用過table製作網頁,你就應該知道,如果要在表格中繪製一條虛線該如何做,那需要製作一個很小的圖片來填充,其實我們還有更簡單的辦法,只要在<td></td>中加入這麼一段就可以了,你可以試試:
- t* G3 O! O7 W9 h5 K' z+ z) p, P  <div style="border-bottom:1px dashed #ccc"></div>0 Q5 j) k- P& T; j; r  S4 C9 ?! t% d
4 b" \$ x: m, _# L. {
  大家可以再次參考手冊,然後你就能明白dashed、solid、dotted...等的作用,利用它們你可以製作出許多效果來,實線、虛線、雙線、陰影線等等。+ D, P0 e* m) s" ?3 \& y' i

( [. s% {0 v# a7 h  m 程序代碼& R; q7 {2 j4 d+ r3 w7 Y
<div id="banner"></div>8 x8 ?/ V) k  ^( Y
( r3 T3 N: e' @  h& g
0 G! ^+ g$ R( `, A# ^7 E1 A
  以上代碼便可以實現設計草圖中的banner,在css.css中加入以下樣式:6 U4 _! f' ~' m- M  K1 w; e! s* [

0 q% h8 ~/ s) d3 J$ G) p7 g, z) z 程序代碼
+ }" L4 O5 y0 _+ J, s1 d! e% u#banner {4 R/ ]% A4 O  [' H# I# z
    background:url(banner.jpg) 0 30px no-repeat; /*加入背景圖片*/$ e8 p, @2 u( Q% |5 D, {
    width:730px; /*設定層的寬度*/
3 F( p1 Z( U7 s7 J1 i' {( \    margin:auto; /*層居中*/: @4 R2 L% e2 ]/ G- i; I. `
    height:240px; /*設定高度*/
) `7 T! x* G: G5 ]! `( e    border-bottom:5px solid #EFEFEF; /*畫一條淺灰色實線*/, K& S" S8 O" B1 n
    clear:both /*清除浮動*/0 `4 n: S: o. P/ a) ^* o
}, Y2 L2 a7 G6 G2 Z8 J) S4 }% ~
! F) Y( w' @- w# U" P& s) x) F" C
3 s% e" j$ e+ c# k( S6 k
  通過border很容易就繪製出一條實線了,並且減少了圖片下載所佔用的網絡資源,使得頁面載入速度變得更快。
: A% C7 Q& q  Y1 ~: w1 a
# |0 g9 O( ]: H8 o( w8 C( w; y  另一個要說明的就是clear:both,表示清除左、右所有的浮動,在接下來的佈局中我們還會用這個屬性:clear:left/right。在這裡添加clear:both是由於之前的ul、li元素設置了浮動,如果不清除則會影響banner層位置的設定。
8 s# u* e" Z: @' Q7 X
7 H8 f* J+ p3 J3 ~7 o# U程序代碼
! t7 L* c$ v4 h2 @2 L* M* J<div id="pagebody"><!--頁面主體-->$ a- g" c$ v8 N; w8 O
    <div id="sidebar"><!--側邊欄-->
2 n1 H; p% L* `$ a$ G/ J( J9 c    </div>
& }+ L) V) ]: q1 Z0 @! J    <div id="mainbody"><!--主體內容-->
7 ^$ h0 l2 M, P, A    </div>+ H7 c! J2 a$ @& H
</div>
* ~) P$ @0 m" u. l& ?, r9 E5 O. m5 w
/ m3 v  d% p% s/ Z4 [
  以上是頁面主體部分,我們在css.css中添加以下樣式:6 \% e8 D* C8 c3 g( o# z

5 D. k+ _* }. d3 b$ ^0 e 程序代碼6 Z* @6 T' n8 Q! g( \8 ?' g: H
#pagebody {
8 r: s. p& C5 L. C. ^1 j& [    width:730px; /*設定寬度*/, \0 Q- M0 ?; }/ [! @
    margin:8px auto; /*居中*/6 B! O' w3 j5 `6 X: Q4 q, l7 [
}
5 q9 ^+ j2 c( ?# X; m2 a, s#sidebar {3 E2 `7 G! H3 o& b5 q* U
    width:160px; /*設定寬度*/
; U4 ?# y, h9 [! c1 O( q" Y    text-align:left; /*文字左對齊*/1 I  a# O* N) V$ ?( i# ~
    float:left; /*浮動居左*/
8 R& l4 L4 q' X    clear:left; /*不允許左側存在浮動*/
9 R1 _% ]8 ^/ A& G# @7 I    overflow:hidden; /*超出寬度部分隱藏*/0 G- _2 u5 L- N- L/ h
}  h" L* Q3 k# N. v
#mainbody {. b( Y# O4 S4 u2 t1 ~
    width:570px;
' D5 E$ }8 b. s8 A  o9 i    text-align:left;
- |3 _) G1 f  K$ ~# {# y    float:right; /*浮動居右*/( ?" k5 e, U% k1 P8 O
    clear:right; /*不允許右側存在浮動*/
. o& C' [1 m; D8 `- \. ?    overflow:hidden3 j4 ]6 U9 P/ x0 G
}/ J  q9 N1 o! S" f5 s/ M5 f( {

: p! m: S9 Q9 ?; A" z. n/ x. o) x" u5 [: B- V  N& B/ ]: {
  為了可以查看到效果,建議在#sidebar和#mainbody中加入以下代碼,預覽完成後可以刪除這段代碼:4 z5 \1 g8 l# q+ P! p; {

3 _5 \& w7 E; D0 `* e; w3 A程序代碼
8 p  h  H! |6 dborder:1px solid #E00;4 o& o/ [: n# v; W: b* R
height:200px9 R. D% O# Q3 ?  Q% h; F- `6 P
. T8 |& [; Z( t# a
! T/ ^/ R! E9 z9 y% F
  保存預覽效果,可以發現這兩個層完美的浮動,在達到了我們佈局的要求,而兩個層的實際寬度應該160+2(border)+570+2=734px,已經超出了父層的寬度,由於clear的原因,這兩個層才不會出現錯位的情況,這樣可以使我們佈局的頁面不會因為內容太長(例如圖片)而導致錯位。+ p2 _% l' B) [! R" V

2 O) i2 K- h8 M, J" O2 i  而之後添加的overflow:hidden則可以使內容太長(例如圖片)的部份自動被隱藏。通常我們會看到一些網頁在載入時,由於圖片太大,導致佈局被撐開,直到頁面下載完成才恢復正常,通過添加overflow:hidden就可以解決這個問題。  E7 d* s; q/ g! L. g$ O

  H! d/ u' z/ @# H+ u* t, G  CSS中每一個屬性運用得當,就可以解決許多問題,或許它們與你在佈局的頁並沒有太大的關係,但是你必須知道這些屬性的作用,在遇到難題的時候,可以嘗試使用這些屬性去解決問題。3 D& z& t; H9 j' J' }- o5 `3 T
您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

點基跨境 數位編輯創業論壇

GMT+8, 2025-7-3 19:00

By DZ X3.5

小黑屋

快速回復 返回頂部 返回列表