过期域名预定抢注

用戶名  找回密碼
 免费注册

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

[複製鏈接]
發表於 2007-5-9 22:08:40 | 顯示全部樓層 |閱讀模式
Div+CSS佈局入門教程4 a* B4 a# L/ K1 \
; N. B. x+ u. s" C) Y8 ~& Q
轉載請註明出自落伍im286.com,本貼地址:http://www.im286.com/viewthread.php?tid=1965636
- u, ~1 E& H" ]( f4 H$ A  Q) r, {& A* e$ a6 j8 F, S
0 p9 `0 h' t0 Q+ n) d# Y+ Z$ g
一、頁面佈局與規劃
0 G8 g- B  o# t3 @  Z/ D" ^" C5 ]' U0 M$ T
  好久沒有認真寫點東西了,想起最近這些時間經常有朋友問到我有關於DIV+CSS佈局的問題,其實歸根結底還是由於沒有入門造成的。那麼接下來的這篇文章就帶領大家入門吧...
( m- [8 c4 L, A* M& m7 t, v# P5 j. \' \6 x
  在網頁製作中,有許多的術語,例如:CSS、HTML、DHTML、XHTML等等。在下面的文章中我們將會用到一些有關於HTML的基本知識,而在你學習這篇入門教程之前,請確定你已經具有了一定的HTML基礎。下面我們就開始一步一步使用DIV+CSS進行網頁佈局設計吧。
$ q. a* @$ l, g. x% m3 X4 P/ J4 p9 t3 ^
  所有的設計第一步就是構思,構思好了,一般來說還需要用PhotoShop或FireWorks(以下簡稱PS或FW)等圖片處理軟件將需要製作的界面佈局簡單的構畫出來,以下是我構思好的界面佈局圖。) a; L. a3 s1 \# u2 i9 @

& b9 }. l3 p2 v; X3 X  下面,我們需要根據構思圖來規劃一下頁面的佈局,仔細分析一下該圖,我們不難發現,圖片大致分為以下幾個部分:2 f; t/ r; f* U4 I) H( X% x$ s5 y2 w
  1、頂部部分,其中又包括了LOGO、MENU和一幅Banner圖片;# p& G& k9 ]2 u! N+ A
  2、內容部分又可分為側邊欄、主體內容;. X4 D7 s8 e; l0 L+ L
  3、底部,包括一些版權信息。
" h3 z( n  u/ a) d  有了以上的分析,我們就可以很容易的佈局了,我們設計層如下圖:1 m) E$ b, e- u4 _2 @
  根據上圖,我再畫了一個實際的頁面佈局圖,說明一下層的嵌套關係,這樣理解起來就會更簡單了。
. a: v1 H& d+ I: A+ m$ H4 I' h% c$ K$ G' t7 t* \: `
  DIV結構如下:
1 ~( w) l: M0 O% `. M  │body {} /*這是一個HTML元素,具體我就不說明了*/4 w8 i; C5 [3 \, e
  └#Container {} /*頁面層容器*/0 ^4 N* N( v2 Y/ u9 q- |
     ├#Header {} /*頁面頭部*/; w6 F- c% u5 \, u( k$ C
     ├#PageBody {} /*頁面主體*/+ Q6 s2 v0 ^' S* \* ~
     │ ├#Sidebar {} /*側邊欄*/
# `7 c( g2 p4 x' ]8 M/ i7 I     │ └#MainBody {} /*主體內容*/% e: E0 ?0 D: T. V! U7 Q
     └#Footer {} /*頁面底部*/
8 ?4 g" s( j- T% X& X+ `; ^  至此,頁面佈局與規劃已經完成,接下來我們要做的就是開始書寫HTML代碼和CSS。
1 l8 Q  ?3 r1 j6 R3 q, q3 v  p' o
7 k- ]" D" T4 s3 y& W0 D: M- Q6 k0 P$ b$ U' }0 y( D" [! Y: n
二、寫入整體層結構與CSS
$ b1 ]9 K) X% i7 {( y8 ]: r6 ?9 @* v' k  N: A) Q  g
  接下來我們在桌面新建一個文件夾,命名為「DIV+CSS佈局練習」,在文件夾下新建兩個空的記事本文檔,輸入以下內容:5 n. A6 @% T4 u4 L& |6 p
程序代碼
: d& X4 P. W/ X, t" t<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
" r# Z9 X" q8 C  \& w( u' _<html xmlns="http://www.w3.org/1999/xhtml">" ^( P7 m/ D+ l+ A& v4 c6 D
<head>/ T) e+ Q6 ]( I
<meta http-equiv="Content-Type" c />
' }; \' [$ w0 d! A" j: ?. E1 k<title>無標題文檔</title>
8 e2 U. N% @' V6 A, p<link href="css.css" rel="stylesheet" type="text/css" />' @. m1 Z5 b9 j
</head>( h) H) R  }3 r; z  a1 F

5 c0 A! K3 d! p4 v6 g<body>
" o8 m  c) A9 l: N</body>( I1 k: a+ f5 Y) o* _7 s2 i
</html>
' J# e# d4 f3 C4 n' w/ H
. `7 L9 T% R9 T) S& K
" L  ?$ X$ l! \* D8 O2 Z
( I' d0 W" Y7 p' p; g  這是XHTML的基本結構,將其命名為index.htm,另一個記事本文檔則命名為css.css。
2 c4 R" T% S& y2 D, ?. T2 W8 E
) c) q9 v' W' X+ e- e$ T+ r  下面,我們在<body></body>標籤對中寫入DIV的基本結構,代碼如下:0 O$ k) [# }: j7 r

# e: h, l5 H+ Y. |+ o# f: o/ N 程序代碼
  E) y) `# D- q" c2 j
% \3 B0 [% Q* J7 G% ]<div id="container"><!--頁面層容器-->3 M, f& Y4 _. U& j2 ^7 N
  <div id="Header"><!--頁面頭部-->1 S/ v$ A" o7 y1 Y  p
  </div>
& {/ u0 U1 V) [7 _$ h  <div id="PageBody"><!--頁面主體-->5 |# [+ H: E/ ^# [: q
    <div id="Sidebar"><!--側邊欄-->
2 N. S, k, Q; _& R  ~    </div>
/ v. X" \  t" |# y! t    <div id="MainBody"><!--主體內容-->% G* T$ q$ j1 o" N4 t, L
    </div>4 ^! x3 T+ R+ N
  </div>
# c: i1 m  m0 f# l- c& o  <div id="Footer"><!--頁面底部-->
" V) ?/ }6 W& I* P3 Y  </div>
% {, L9 E5 q1 J% ~/ O& [3 ^/ T</div>6 u, w9 l: ?+ a) w- D2 [

& `9 D) C: v! |2 X. W& X! \/ @
$ x' g- x/ z/ X
  ^, U4 l6 l2 @4 L# k" n! N6 ^  為了使以後閱讀代碼更簡易,我們應該添加相關註釋,接下來打開css.css文件,寫入CSS信息,代碼如下:. h5 h2 E( C+ h- g6 M! L' S) y+ \; V
6 Y% H( t) j7 _2 Y8 m( `
9 i# W8 i# w6 a/ a; @2 q" x
程序代碼/ q( _; |1 r3 E7 M/ {
1 ~& ]- Q/ A% Z( C
/*基本信息*/3 y. c5 i3 R$ {* M4 I( p- O
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
8 T: N: y: i' l" R& \0 M/ L( n: y5 E; s
# c+ @( P* z- Z" s3 D+ d/*頁面層容器*/
+ k0 A, ?$ Y. B3 r: l#container {width:100%}: U& K* e+ L1 Q9 q$ Z; q/ M1 [6 ]5 Y9 F6 l
, S1 N; w( W  q& ?
/*頁面頭部*/+ [8 C; e3 Z! u
#Header {width:800px;margin:0 auto;height:100px;background:#FFCC99}; P& ]# h7 b7 ]% C1 q

) T  R4 L1 b3 g& Z) I) e! u/*頁面主體*/- K9 ~1 ?1 M9 C* X& g
#PageBody {width:800px;margin:0 auto;height:400px;background:#CCFF00}' n8 G- c  P7 Y( a

9 K- D8 l( }  Y/*頁面底部*/
/ l" A1 l( f8 k. A7 G1 A1 W- s#Footer {width:800px;margin:0 auto;height:50px;background:#00FFFF}
2 L6 m  b& g+ K$ Q+ [* E
* L+ C% m) D2 s
5 `( f4 c- ^' x$ m. ?! `
( A- d- Z& X0 E- }! ~7 b7 V: w7 f( `  把以上文件保存,用瀏覽器打開,這時我們已經可以看到基礎結構了,這個就是頁面的框架了。
! H" M+ Y) E& ]$ p0 h8 q1 z! k  關於以上CSS的說明(詳細請參考CSS2.0中文手冊,網上有下載):1 p+ v3 N6 H+ P% r, f" k3 x
) x3 K& q2 d, E3 f! U2 E  @- q
  1、請養成良好的註釋習慣,這是非常重要的;4 p  o, A/ o7 _; ?
$ A! e8 n3 @. S
  2、body是一個HTML元素,頁面中所有的內容都應該寫在這標籤對之內,我就不多說了;
0 `9 _' |) d- I/ G1 Y7 Q7 y0 m
2 h5 w' p2 h1 N6 U& {9 A+ K$ s4 O9 R  3、講解一些常用的CSS代碼的含義:
2 P, Q& L- R$ Y9 W
- ?# b) S* D- k( o& b# d    font:12px Tahoma;4 ?. Q# d! i5 l6 O: p4 k
    這裡使用了縮寫,完整的代碼應該是:font-size:12px;font-family:Tahoma;說明字體為12像素大小,字體為Tahoma格式;
* t/ Y/ _$ W+ |0 t% |, x, G; F0 b* f$ v$ ?
    margin:0px;; Y. a  a& u6 Y0 X2 m
    也使用了縮寫,完整的應該是:
- ~. R& E# N. Q! t5 G0 c2 v5 Z
; t  t7 S$ b1 e# K    margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px+ w9 u+ y, Z' `, h; J
    或
) z' A4 O$ b& G/ ]+ {    margin:0px 0px 0px 0px
: W; ~' u( Z: B& Q2 B
3 \4 g8 J& l8 a9 e6 R* P7 k% n! m    順序是 上 / 右 / 下 / 左,你也可以書寫為margin:0(縮寫);
/ N; Q. I: _4 L  }; X% E" P$ A* Y    以上樣式說明body部分對上右下左邊距為0像素,如果使用auto則是自動調整邊距,8 |8 M  H% b. _" [4 ?- I' K* u
    另外還有以下幾種寫法:
4 t# e0 e# f: M( b    margin:0px auto;& z3 x2 i- b$ h5 o" h6 h
    說明上下邊距為0px,左右為自動調整;  i+ d: E3 C- `1 n
    我們以後將使用到的padding屬性和margin有許多相似之處,他們的參數是一樣的,' p2 O/ V7 q1 U5 q' b1 M! J
    只不過各自表示的含義不相同,margin是外部距離,而padding則是內部距離。
  N7 S: d1 N0 j# |, ?! G5 r! P7 x! k
    text-align:center2 b4 t' {' R. d$ _6 X0 h) G
    文字對齊方式,可以設置為左、右、中,這裡我將它設置為居中對齊。
# X# C. C! V* }3 b; |8 i7 L5 M' m  r
% I6 O+ T" @+ h' W    background:#FFF
7 d2 r, x% u( K; e: L7 ]/ ^    設置背景色為白色,這裡顏色使用了縮寫,完整的應該是background:#FFFFFF。
( z" I. \1 F, W, [) I" D3 c    background可以用來給指定的層填充背景色、背景圖片,以後我們將用到如下格式:
6 y0 i: w  L' u" l2 C1 X$ P    background:#ccc url('bg.gif') top left no-repeat;
$ S+ Z+ Q9 X/ e" k    表示:使用#CCC(灰度色)填充整個層,使用bg.gif做為背景圖片,
7 s% F+ c; S5 k6 W: ~" I    top left
$ g$ j9 q5 `& ~' p# L    表示圖片位於當前層的左上端,no-repeat表示僅顯示圖片大小而不填充滿整個層。
) t3 F: C0 R5 L. B8 A" i- R    top/right/left/bottom/center2 ?; y6 e" `$ K7 E2 T9 D9 I
    用於定位背景圖片,分別表示 上 / 右 / 下 / 左 / 中;還可以使用1 [: y9 L8 ^6 N: W/ B: c% v
    background:url('bg.gif') 20px 100px;  g. s' C+ X3 \: S/ X; R/ j' Y
    表示X座標為20像素,Y座標為100像素的精確定位;5 l; k  W) `1 Y
    repeat/no-repeat/repeat-x/repeat-y
5 O, L! ?) Y$ M3 N    分別表示 填充滿整個層 / 不填充 / 沿X軸填充 / 沿Y軸填充。5 k0 b: R9 @  m7 L- B- ~9 c

5 O6 g6 T: p, F& D0 J    height / width / color   ~. Y8 c: G" ~. L! y& e
    分別表示高度(px)、寬度(px)、字體顏色(HTML色系表)。
5 H, u7 R/ z# S9 r) Q  ~4 W* z8 N7 Y; S4 Y* z7 m% L
  4、如何使頁面居中?
3 w5 z9 y, [& [0 G- {    大家將代碼保存後可以看到,整個頁面是居中顯示的,那麼究竟是什麼原因使得頁面居中顯示呢?  ~7 \  G- r" T+ A- g
    是因為我們在#container中使用了以下屬性:
" q  m# K8 {7 k2 Z. H) s$ q5 b. ]    margin:0 auto;
! R+ O7 U2 L+ d1 r5 Z    按照前面的說明,可以知道,表示上下邊距為0,左右為自動,因此該層就會自動居中了。
: e4 ~5 N9 u* `* A$ i1 n* Y    如果要讓頁面居左,則取消掉auto值就可以了,因為默認就是居左顯示的。3 C& W& M8 `' o3 X+ A1 k( D& ]! u
    通過margin:auto我們就可以輕易地使層自動居中了。& H) ~! z5 e, V6 x6 w
5 d8 ?% ]7 y: W9 o* C
  5、這裡我只介紹這些常用的CSS屬性了,其他的請參看CSS2.0中文手冊。
現在進入貼吧,不用註冊就可以投稿了,把你的心情和經驗與大家一同分享吧!!請到相應的貼吧發貼哦,貼吧新開,人太少,不過希望大家能支持!!謝謝 點擊這裡【我要投稿】
0 s: h% b" o3 z) W
( ~" N  j! F' M) Q8 B( r' I三、頁面頂部製作(1)
' M0 c6 R/ d+ M! J7 R
  k% w# _2 e& {* p: L; m  當我們寫好了頁面大致的DIV結構後,我們就可以開始細緻地對每一個部分進行製作了。
# ~/ _) J9 R0 S1 m9 `7 _7 e8 r' i/ M$ C3 @
  在上一章中我們寫入了一些樣式,那些樣式是為了預覽結構而寫入的,我們把css.css中的樣式全部清除掉,重新寫入以下樣式代碼:# r9 N0 e9 P8 N: w' e+ ]: m* ~7 b

+ n/ H* F2 h7 \4 J 程序代碼6 \8 n( n) l. R' `: \3 `5 T
/*基本信息*/- V" v9 e+ }; e8 m( _$ o  ]
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}! B% M# g8 B6 ]7 C& W1 i) T
a:link,a:visited {font-size:12px;text-decoration:none;}
2 p6 p# v- k. F. ^9 W- qa:hover{}. O5 N' }- f) w. ~3 E
6 G( P2 ~; x2 p2 x3 X/ K% V. t
/*頁面層容器*/
, G( I) S1 b+ ?5 z! [#container {width:800px;margin:10px auto}
5 v4 r, k, w+ T3 h8 J9 l$ T5 Y6 L
6 v. t; t7 l) U' ^
  樣式說明:, N" K2 u6 m4 G: o" r" t
# D8 U* a6 @* ?
  a:link,a:visited {font-size:12px;text-decoration:none;}7 \* O4 y4 `3 |( c
  a:hover {}

; S2 {: B) `" b$ V5 F
- ]; ?+ T- Q' F) q. F& o  這兩項分別是控制頁面中超鏈接的樣式,具體我就不說明了,請大家參閱手冊。
# i" F! D4 y2 V  A, R# Z+ J3 ^, F9 r& H( ], y+ K* ~% E
  #container {width:800px;margin:10px auto}- f* [' r: P5 o$ {2 i2 e5 O

2 D' A$ Y+ u/ l  指定整個頁面的顯示區域。) S7 z; m& j& N7 E9 |) \0 p( z1 m
  width:800px指定寬度為800像素,這裡根據實際所需設定。
% r: y8 R0 i- K& w  m" b  margin:10px auto,則是頁面上、下邊距為10個像素,並且居中顯示。
) {" s9 D% y! D4 u  上一章中我們講過,對層的margin屬性的左右邊距設置為auto可以讓層居中顯示。
0 J# e+ m3 E7 {6 ?9 l0 C# B8 o  Q+ a& s! p8 c! Y! k) j
  接下來,我們開始製作TOP部分,TOP部分包括了LOGO菜單Banner,首先我們要做的就是對設計好的圖片進行切片,以下是在FW下完成的切片:( Y2 e8 ?: A5 J! P4 b( k. j
  我將TOP部分切片為兩部分,第一部分包括了LOGO和一條橫線。由於LOGO圖片並沒有太多的顏色,這裡我於是將這一部分保存為GIF格式,調色板選擇為精確,選擇Alpha透明度,色版為白色(此處顏色應與背景色相同),導出為logo.gif,圖像寬度為800px: e# b2 p) S( ~* u
- x- A' V4 Z$ Y# m
  到這裡,有的朋友就說了,* 為什麼要使用GIF格式?使用JPEG不是更好嗎?
  s3 j& j( M+ D1 o9 D  因為GIF格式的圖片文件更小,這樣能使頁面載入的速度更快,當然使用此格式之前必須確定圖片並沒有使用太多的顏色,當我們使用了GIF格式時,從肉眼上並不能看出圖片有什麼太大的變化,因此這是可行的。
5 n0 b* c. y2 V5 {6 ^/ [, [; W8 j% ~( o
  * 接下來的Banner部分還能使用GIF格式嗎?
7 u+ w# D/ e$ N1 y" I  答案是不能,因為Banner部分是一個細緻的圖片,如果使用GIF格式顏色會有太大的損失,所以必須使用JPEG格式,將文件導出為banner.jpg
! w1 B" p% l1 D3 Z# w8 n% o' o' O( N2 @$ x5 W2 j5 f+ F, P
  * 合理的切片是非常之重要的,因為切片的方法正確與否決定了CSS書寫的簡易程度以及頁面載入速度。) {: K+ e: F$ w6 R1 w: t

* C! l( y  S& q7 S5 Y& R8 a  切好片後,我們還需要對TOP部分進行分析並將DIV結構寫入Header中代碼如下:% u2 `, x; p1 ]2 M0 P- @
' G4 j. ?8 f( }. A: n; P6 h
程序代碼" [! `) |) z- R
  <div id="menu">
" f# ^$ S/ O- O   <ul>
5 d$ J8 A  D6 ], h6 M3 N1 L( P    <li><a href="#">首頁</a></li>( R. ~$ I  {3 |& ~8 U$ A+ z6 I
    <li class="menuDiv"></li>" R5 s$ a1 h5 s& [) r
    <li><a href="#">博客</a></li>
% \- K/ b/ }) s& l5 ]  i+ I    <li class="menuDiv"></li># z) {' L. i& {$ A1 j. L, y
    <li><a href="#">設計</a></li>! C1 s+ r' v1 G0 H- ]# S( F+ G
    <li class="menuDiv"></li>0 Z$ j7 O9 g2 e3 d7 c! l
    <li><a href="#">相冊</a></li>1 o3 W! }0 ~0 f2 S
    <li class="menuDiv"></li>/ o9 x& k) k7 e2 P/ k$ X) u$ T
    <li><a href="#">論壇</a></li>
( z1 c2 T: l* e    <li class="menuDiv"></li>2 ^3 }5 v* c8 i5 Z( x0 ^
    <li><a href="#">關於</a></li>
  U: s( s" l1 M# |   </ul>
# h3 w5 @. C' ~( D8 n3 p/ E/ V  </div>
  a) p! J. R/ N5 J" ?& I  <div id="banner">
, @' Y5 v- I6 I& J  </div>
+ H; q, F  U( w0 M0 }2 E( _. ]6 ]% J7 F. G  `% C7 N
+ T' c4 K1 C! F/ s  X) m: S( j
  為什麼要這麼寫呢,因為對菜單使用列表<li>形式,可以在以後方便對菜單定制樣式。
! B9 `6 n. a- k) `8 X5 H. T' z. p% ]5 }
  而為什麼要添加以下代碼呢?
& N3 L& J2 P2 X- G  <li class="menuDiv"></li>
- f7 _) ~% \; }* W  插入這一段代碼是可以方便地對菜單選項之間插入一些分隔樣式,例如預覽圖中的豎線分隔: m0 B* y& M3 F9 n1 w  ?0 z

8 y! j8 f1 A9 @! B: y$ O( ?) H  |  然後我們在css.css中再寫入以下樣式:1 C% P4 c! Z6 [2 F; e  A2 u

9 X/ {% S- x7 l! G; k6 a5 h% O 程序代碼: y2 \. s* s& o5 ^2 _
/*頁面頭部*/% P' m; o1 v6 c* C4 X* [, `
#header {background:url(logo.gif) no-repeat}8 K3 M' f" y+ c

* H4 W3 U2 Q' Y9 k9 @! e: S9 E  g" N( @! @  c/ t
  樣式說明:" d  q& t$ `, {4 u  X* {0 v
  #header {background:url(logo.gif) no-repeat}% V" a, w) D* f( T
  給頁面頭部分加入一個背景圖片LOGO,並且不作填充。
; L1 U7 [# R( m. w$ H- f% Y0 [! R& p% K
  這裡,我們沒有指定header層的高度,為什麼不指定呢?( d, j! i& l) z$ A; ~' q6 w/ K8 o' `

: C, ?4 u3 p- s# \- e  因為header層中還有菜單和banner項,所以層的高度暫時是未知的,而層的屬性又可以讓層根據內容自動設定調整,因此我們並不需要指定高度。
' P; r9 w5 @1 e9 k& q1 n   現在進入貼吧,不用註冊就可以投稿了,把你的心情和經驗與大家一同分享吧!!請到相應的貼吧發貼哦,貼吧新開,人太少,不過希望大家能支持!!謝謝 點擊這裡【我要投稿】/ D3 y8 l9 ]5 H' d) y

. H, k9 C, c" s4 C3 [, X  t三、頁面頂部製作(2)----使用列表<li>製作菜單; x4 G/ T8 `1 |, q

% A' T& w, Y& x6 e- }  開始此節的學習前,請確認你已經參照之前的幾節內容寫入了DIV、CSS到index.htm和css.css文件中。4 j: ?) Q. K) T5 w
  這一節我將告訴大家如何用列表<li>來製作菜單。
7 z; ]6 o8 l/ \2 [3 h, Z! ]5 H 程序代碼, f+ b! Q* B3 d0 o, T
        <div id="menu">
9 c5 q+ X- [% Q7 |          <ul>
4 n- ^& t8 r; x: ]. c            <li><a href="#">首頁</a></li>
6 O* \7 Q2 j! Y            <li class="menuDiv"></li>. X$ L8 F3 R$ W* e9 y
            <li><a href="#">博客</a></li>
1 x& A: ~9 G4 w& [! o4 t            <li class="menuDiv"></li>
5 F8 P4 ~) d* E7 d% |            <li><a href="#">設計</a></li>
' q8 |6 t, C5 v1 W5 m1 `            <li class="menuDiv"></li>
  g+ P9 g2 c- v0 c( S# n/ }            <li><a href="#">相冊</a></li>. v( y9 z7 K1 s( s4 g: W7 I
            <li class="menuDiv"></li>
' r* O# b# p9 J/ F3 e( `3 P4 V            <li><a href="#">論壇</a></li>, A2 @4 ^: Q, l6 }) h' S
            <li class="menuDiv"></li>& [3 c; M/ J# `8 n* T: z1 n
            <li><a href="#">關於</a></li>
: Y5 f' L8 q, T* D          </ul>
7 f  i6 n! b* l* q; G        </div>
7 K3 |" c7 a6 q8 h! o( B# b
7 F8 W& B# E8 k$ K1 q
  [' p/ c% j3 y' D* k  ~  以上是這部分的結構,有關於<ul></ul>、<li></li>這兩個HTML元素大家自己去參考相關的內容吧,它們最主要的作用就是在HTML中以列表的形式來顯示一些信息。  B! A; y5 A0 O1 W; X2 {- S

; j4 D( c( e! z, H" x  還有一點需要大家一定要分清楚的,當在HTML中定義為id="divID"時,在CSS對應的設置語法則是#divID{} ,如果在HTML中定義為class="divID"時,則在CSS中對應的設置語法是.divID。
) A2 U8 S2 O; B! e$ P5 `  如果id="divID"這個層中包括了一個<img></img>,則這個img在CSS中對應的設置語法應該是#divID img {},同樣,如果是包含在class="divID"這個層中時,則設置語法應該是.divID img {},這一點希望大家要分清楚了。
6 H9 A9 {5 j' m0 U  另外,HTML中的一切元素都是可以定義的,例如table、tr、td、th、form、img、input...等等,如果你要在CSS中設置它們,則直接寫入元素的名稱加上一對大括號{}就可以了。所有的CSS代碼都應該寫在大括號{}中。3 X5 f$ L4 Y# E) T% \+ v

) C- D3 X" v1 y/ w; s& q8 @  按照上面的介紹,我們先在css.css中寫入以下代碼: - h( Q3 B, \" ]6 ?
程序代碼
* M+ ?" g9 y0 d5 K, a3 u' y#menu ul {list-style:none;margin:0px;}* t0 F) \, o' I. J
#menu ul li {float:left;}* B, b. A) j9 m6 y

/ D9 D% R9 k7 ^5 M& T  N! t0 K9 e
  解釋一下:
: p- F$ L7 A5 e; w. g& s  #menu ul {list-style:none;margin:0px;}
; k+ q, W4 X8 T  list-style:none,這一句是取消列表前點,因為我們不需要這些點。1 J' _: |( g7 [2 z
  margin:0px,這一句是刪除UL的縮進,這樣做可以使所有的列表內容都不縮進。" g) k! c; e6 B$ p
# M) N# f3 j2 {' \) O" G
  #menu ul li {float:left;}$ m) B4 y" @- m" I) q+ @3 u1 K5 P
  這裡的 float:left 的左右是讓內容都在同一行顯示,因此使用了浮動屬性(float)。
- t* N+ P$ L3 A1 X! M* s2 j) Y1 a
# |, L  k. a0 a" t1 Q$ @' m* S$ P7 c  到這一步,建議大家先保存預覽一下效果,我們再添加下面的內容,效果如下:# D. v; ^1 C2 Y) J

$ S' G  \2 ~: c1 i6 m3 Q. G8 Y2 D' w/ K% s
* m  o( f5 ^" P& m
  這時,列表內容是排列在一行,我們在#menu ul li {}再加入代碼margin:0 10px" M) D7 N- g' i3 e" O1 M# L
程序代碼
' S$ s. Z' G; I8 j6 `#menu ul {list-style:none;margin:0px;}
. r) Y" q' s! C- o4 [% Z' u1 F#menu ul li {float:left;margin:0 10px}
: f8 H# r( d( c. E0 f
" r1 j& S; {" u' r; a' S" g. j1 i# i7 I" |0 m. }
  margin:0 10px的作用就是讓列表內容之間產生一個20像素的距離(左:10px,右:10px),預覽的效果如下:
% `' Y  C1 \( _% {! w1 g% Q
6 y7 v4 L! Y3 r  H) F
, i. c( B9 X; `+ v, d  現在,雛形已經出來了,我們再來固定菜單的位置,把代碼改成如下:
; ?9 a3 ^9 K8 h& q  i程序代碼* L/ Q) a  Y' E+ A7 q- `4 Z+ E
#menu {padding:20px 20px 0 0}1 b" u+ ^& k. Q2 [/ D1 X+ o) @3 A
/*利用padding:20px 20px 0 0來固定菜單位置*/. W( x, G9 f7 p9 u
#menu ul {float:right;list-style:none;margin:0px;}
# T4 w* j& O5 L3 H7 i# L5 _( T/*添加了float:right使得菜單位於頁面右側*/
+ `7 `/ I8 \. @% X" d#menu ul li {float:left;margin:0 10px}
0 D, b8 j) I( b+ ^
. D) b3 o: [! K  S
$ S9 [" E! m/ p% y! i
- {4 S: }: F6 M  這時,位置已經確定了,可是構思圖中,菜單選項之間還有一條豎線,怎麼辦呢?/ t' F, @, `- F' d. d. R
  別忘了,我們早就已經留好了一個空的<li class="menuDiv"></li>,要想加入豎線就使用它了。
7 ?; |% W5 c6 I* |  按照上面說的方法,我們再添加以下代碼:
2 t/ ~9 P7 V+ m 程序代碼
: W% P! K. v# K2 ?.menuDiv {width:1px;height:28px;background:#999}
  x! H: }/ R+ y* Q$ o# Q5 L& ~0 x6 p$ L
,保存預覽一下,豎線是否已經出來了?關於這段代碼就不多講了,應該是很容易理解的。$ h  d; `7 P) M; Y+ }) C
( m, ?& P/ }0 p
4 ~$ y6 n. x# i; ^7 s. t% {
8 I( T# N7 u/ F' z& S; n
  不過,菜單選項的文字卻在頂部,我們再修改成以下代碼: / B7 Y  ~1 l' k' {$ d5 |2 M
程序代碼' m0 E  s- ~9 M* V0 H
#menu ul li {float:left;margin:0 10px;display:block;line-height:28px}
2 G. M( a: v8 ~! X- A
1 t3 Y- z* L2 p( b
, c+ i- |& n% [1 w/ X2 \4 h4 H  關於display:block;line-height:28px大家可以去參閱一下手冊,我就不多講了。
+ g$ `% O, }9 X( E8 j) }
5 o8 U% C# u; ~  k2 F: N- n6 }  效果基本上已經實現了,剩下的就是修改菜單的超鏈接樣式,在css.css中添加以下代碼:
0 Z3 `) {& @4 I0 y程序代碼5 O8 W( {- _; v$ E1 M% P9 l
#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
' K1 P( ]( |+ P4 R#menu ul li a:hover{}
' P  b# a5 [3 \' [0 n3 A1 z: J9 v+ D% a- K5 U0 M
. J5 p# l3 [6 X8 ]% b8 x+ C$ y: }
  這個也不多說了,沒什麼好說的了,最後的效果如下:
# L8 V0 I- M# O. d: ]7 m- m6 H- B- c7 t
. e3 \9 c6 H) T! h, E

7 A' M6 E  _9 X1 m  這一節到這裡就完畢了,順便把素材提供給大家:
; @, e* ?0 D& {6 u: v  構思圖: 點擊下載
) Y3 {$ S7 {) _6 B5 m8 t  HTML和CSS源文件: 點擊下載) ?: z* R+ O! u: r3 `
四、頁面製作(1)----用好border和clear
! l. m5 ^* x- d4 z
) R$ e( u4 y( S! n9 T3 x- Q  U
  由於找工作找房子的原因,隔了這麼久才能開始寫教程,心裡感覺很對不起一直在關注本站的朋友,今天是找到房子的第二天,於是趕快繼續寫教程。+ X( ~" D& T, W# k; W1 U
, B+ W8 D' y6 E# z& N
  這一節裡面,主要就是想告訴大家如何使用好borderclear這兩個屬性。& E( \9 j% |. G0 T

  }3 {0 l2 R- ^$ z  I: E  首先,如果你曾用過table製作網頁,你就應該知道,如果要在表格中繪製一條虛線該如何做,那需要製作一個很小的圖片來填充,其實我們還有更簡單的辦法,只要在<td></td>中加入這麼一段就可以了,你可以試試:
, o. ~6 b; U$ n: y3 L2 G" s4 z9 K  <div style="border-bottom:1px dashed #ccc"></div>
+ @& N8 ^, U' c9 j2 _: `
& O( N; n# T- M0 q' Q0 B( z9 }  大家可以再次參考手冊,然後你就能明白dashed、solid、dotted...等的作用,利用它們你可以製作出許多效果來,實線、虛線、雙線、陰影線等等。1 E0 U0 c7 O4 N& {$ @2 Y, n( a

; J7 O) @6 ?6 v; w4 m) L- O 程序代碼
" a3 E3 Y: R6 A5 k  M; x. V4 X<div id="banner"></div>
; X" N3 ^$ P8 {9 ~7 H! M' R+ e0 k5 E9 Z. f5 o6 G, V8 J
$ }1 m$ p; |$ C- Z
  以上代碼便可以實現設計草圖中的banner,在css.css中加入以下樣式:' J: q3 m0 N; A& @2 C( C, _( _
  j  @& E2 K' t- F4 r' {* n1 n
程序代碼
+ n3 v3 K5 {7 x5 j#banner {
( ]# e: M  l1 t3 W3 \( W9 I. r    background:url(banner.jpg) 0 30px no-repeat; /*加入背景圖片*/
3 E' l5 Y- a% e0 F    width:730px; /*設定層的寬度*/5 G2 g; k& d8 `9 n. M! ]! p
    margin:auto; /*層居中*/
. ^3 B2 {/ ^. z1 j1 u: G6 p    height:240px; /*設定高度*/
2 P" f/ m* L+ r  w8 F    border-bottom:5px solid #EFEFEF; /*畫一條淺灰色實線*/4 f- t  e: N8 V; R
    clear:both /*清除浮動*/
6 O" g7 M' @. g( R. e4 w7 W}0 {3 B4 p! W5 M! N! c) K; Z2 K
. A* C9 u2 t5 l: v3 w7 H/ x
8 i/ Y5 e3 d" Y+ ?
  通過border很容易就繪製出一條實線了,並且減少了圖片下載所佔用的網絡資源,使得頁面載入速度變得更快。
3 O( @$ f8 }, Q" ~. a! Y( ~" U
3 `; u2 q7 c: [6 J, A5 y6 ^  另一個要說明的就是clear:both,表示清除左、右所有的浮動,在接下來的佈局中我們還會用這個屬性:clear:left/right。在這裡添加clear:both是由於之前的ul、li元素設置了浮動,如果不清除則會影響banner層位置的設定。
+ n: W1 O6 G0 @4 a8 D5 d& ~
# D; A* ]. T- p6 }( c程序代碼
* |$ p5 G' ~- @0 X2 ?- w# J<div id="pagebody"><!--頁面主體-->
$ D$ }: n3 m8 c/ I. k0 N    <div id="sidebar"><!--側邊欄-->" S/ A9 D# |/ q# Y
    </div>
" d6 j$ D( Z$ z/ N7 ?* q    <div id="mainbody"><!--主體內容-->
. V# q( F. r# i    </div>+ u6 M6 t+ Y0 K1 u! ~0 A& I
</div>
$ ]1 h* t; T0 v& s
8 T; J7 M; P$ a1 n- w* G* \4 N
: a; Q1 U" R' C# N3 n  以上是頁面主體部分,我們在css.css中添加以下樣式:
9 t& M& H# |+ w, X0 R# s/ e) \5 |/ K2 U$ _( P
程序代碼
  Q8 S  X2 R2 \- k) M, w  \2 r#pagebody {% U% Z8 C' E% X. X& c; b, S0 L
    width:730px; /*設定寬度*/
& V+ _( h7 _. r5 @( |- {    margin:8px auto; /*居中*/1 D  z( ?: z$ x- i+ f2 [& U! Z; |
}
, P3 F' s- w5 k1 f: z#sidebar {- h0 s% M/ R6 N
    width:160px; /*設定寬度*/
, r/ e1 b6 B! o+ ]8 C& p, Q    text-align:left; /*文字左對齊*/. K2 e( X: ~" Y, g+ q, ~2 d% J. y
    float:left; /*浮動居左*/
' [1 c$ q: [2 v3 P; P: n2 v" I    clear:left; /*不允許左側存在浮動*/
1 g2 _8 X% N* h, H& b    overflow:hidden; /*超出寬度部分隱藏*/- b- w# S0 o$ y+ p. M# p
}
& Q' |. i5 Z2 O2 m6 ?$ [1 B: {3 I#mainbody {  s/ q) ^0 J0 o3 i
    width:570px;
8 m$ G- O: l) g; s  {" K1 k    text-align:left;$ e+ I, a8 M/ X: O5 a: j, a
    float:right; /*浮動居右*/4 q. B" f) G# }6 ?  _1 U' g) R
    clear:right; /*不允許右側存在浮動*/
4 I% Q. J) V% x5 N    overflow:hidden  ]. x3 a; k7 I2 z
}  n/ t8 a. Q9 y4 n. c3 B7 K
/ q0 G0 y0 f, U5 Q' O  G% y
3 W  U" s: Z7 {+ x
  為了可以查看到效果,建議在#sidebar和#mainbody中加入以下代碼,預覽完成後可以刪除這段代碼:
( H5 w- E# ]; }% U' k* P5 M  @- J6 w! X4 _
程序代碼
' w$ ~4 Z  R! f4 Lborder:1px solid #E00;3 i- n  n/ D: s3 X/ F/ s
height:200px
" y$ w, c. o  l) \8 o5 K
& e" U7 v- s$ q7 A2 U0 h5 }) V. n* _0 x% z. A2 C
  保存預覽效果,可以發現這兩個層完美的浮動,在達到了我們佈局的要求,而兩個層的實際寬度應該160+2(border)+570+2=734px,已經超出了父層的寬度,由於clear的原因,這兩個層才不會出現錯位的情況,這樣可以使我們佈局的頁面不會因為內容太長(例如圖片)而導致錯位。
2 _5 ?2 q0 {2 m6 M6 R9 N
! j$ K% g+ u7 g* J5 L5 h$ {7 P' d) i  而之後添加的overflow:hidden則可以使內容太長(例如圖片)的部份自動被隱藏。通常我們會看到一些網頁在載入時,由於圖片太大,導致佈局被撐開,直到頁面下載完成才恢復正常,通過添加overflow:hidden就可以解決這個問題。
+ \4 n0 H( k  C( @* H/ x  ~$ R! n3 W7 p* u2 B
  CSS中每一個屬性運用得當,就可以解決許多問題,或許它們與你在佈局的頁並沒有太大的關係,但是你必須知道這些屬性的作用,在遇到難題的時候,可以嘗試使用這些屬性去解決問題。4 X" k/ ]1 G, E$ ^& Q) z
您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

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

GMT+8, 2025-4-10 14:02

By DZ X3.5

小黑屋

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