过期域名预定抢注

 找回密碼
 免费注册

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

[複製鏈接]
發表於 2007-5-9 22:08:40 | 顯示全部樓層 |閱讀模式
Div+CSS佈局入門教程
/ R5 ?2 q6 H/ G3 t9 \/ A4 O: \" `! ?3 e, y* I1 B! ~3 A
轉載請註明出自落伍im286.com,本貼地址:http://www.im286.com/viewthread.php?tid=19656369 R- a3 H1 N( y6 d
: o( X7 e( M; A  d  T
5 A& n: N' c3 S
一、頁面佈局與規劃
7 G7 z$ ]; R& N: @1 |( K- ]
, z* R+ z3 P8 O( d. o  好久沒有認真寫點東西了,想起最近這些時間經常有朋友問到我有關於DIV+CSS佈局的問題,其實歸根結底還是由於沒有入門造成的。那麼接下來的這篇文章就帶領大家入門吧...# T8 r2 V$ a) p2 M% u
) `& c, T9 E3 e6 R
  在網頁製作中,有許多的術語,例如:CSS、HTML、DHTML、XHTML等等。在下面的文章中我們將會用到一些有關於HTML的基本知識,而在你學習這篇入門教程之前,請確定你已經具有了一定的HTML基礎。下面我們就開始一步一步使用DIV+CSS進行網頁佈局設計吧。
4 `/ m  w% ]1 K& T) S4 F  ^1 G+ P# D1 ?2 C: R. n
  所有的設計第一步就是構思,構思好了,一般來說還需要用PhotoShop或FireWorks(以下簡稱PS或FW)等圖片處理軟件將需要製作的界面佈局簡單的構畫出來,以下是我構思好的界面佈局圖。
' F% N9 ~$ P5 c7 C  i8 Q# C* k- v+ e2 p# }* Z. _
  下面,我們需要根據構思圖來規劃一下頁面的佈局,仔細分析一下該圖,我們不難發現,圖片大致分為以下幾個部分:
4 U% j5 l* n" o+ l* d  1、頂部部分,其中又包括了LOGO、MENU和一幅Banner圖片;: U) Y; d2 w8 P; v8 n% ^
  2、內容部分又可分為側邊欄、主體內容;
& `- M* @+ b% p7 W0 T9 U% F  3、底部,包括一些版權信息。- {& c! s& X, [8 O
  有了以上的分析,我們就可以很容易的佈局了,我們設計層如下圖:; ^7 K( _1 S  w8 C5 c3 [' H
  根據上圖,我再畫了一個實際的頁面佈局圖,說明一下層的嵌套關係,這樣理解起來就會更簡單了。
& K  Y* C. V* ?1 W/ x9 R* @. ]* Q- X" p4 N8 a! @: d
  DIV結構如下:& Q8 m. O" P( ]" c$ F: ]( {
  │body {} /*這是一個HTML元素,具體我就不說明了*/
  Q( p; L- H& R! G6 P  └#Container {} /*頁面層容器*/
+ C3 i/ }) H1 V2 L) n5 g8 g6 H     ├#Header {} /*頁面頭部*/; \% v0 u6 S4 a
     ├#PageBody {} /*頁面主體*/
# x6 `1 c8 S2 C0 R     │ ├#Sidebar {} /*側邊欄*/: y6 T  b, n+ j) ?- f4 N0 I  m
     │ └#MainBody {} /*主體內容*/
8 F, |! ?( v9 y, G* w- ~' Q     └#Footer {} /*頁面底部*/
! |2 x" z7 `8 j. P9 m3 M/ l" `  至此,頁面佈局與規劃已經完成,接下來我們要做的就是開始書寫HTML代碼和CSS。5 `0 H% B/ w1 T% D
# ]5 R- A( `3 t1 f. \; O; G

* ~4 F6 s% ~5 \0 z8 {* ~二、寫入整體層結構與CSS- Z2 j, Y, F) G9 m3 n: b

9 ]6 s. D/ V/ B% D4 t  接下來我們在桌面新建一個文件夾,命名為「DIV+CSS佈局練習」,在文件夾下新建兩個空的記事本文檔,輸入以下內容:
0 l, z1 S( E  m4 I& Z0 }0 M( d 程序代碼
4 I) ^$ I0 M! }1 J# V( |<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
! V! |* g8 p3 b0 ]/ J% H<html xmlns="http://www.w3.org/1999/xhtml">
/ A% f' c. i7 d% K( O  E5 x0 F  m<head>
- H0 r. s: C9 ~1 ]. ]<meta http-equiv="Content-Type" c />. }) K' ~, g9 ^- n+ h! o
<title>無標題文檔</title>
* K0 t( x/ f" u<link href="css.css" rel="stylesheet" type="text/css" />
8 k; U* {# J" j; c( i+ G, H; ^$ C( Y</head>
  C/ ^, X, `2 B: J$ C5 l1 n) F* j2 k& H/ P: r
<body>( Z- u* Z1 Z5 ]. J3 |
</body>' E: l* b# @4 k6 s9 [" B' ]5 B
</html>3 _2 y% i* I7 }! l8 u! ]
9 Q# |1 Q5 s) ^/ c; ]  p
7 ]7 {5 I7 @* T1 n& F) }2 ]

! R# |: j0 `1 U+ _: A& |  這是XHTML的基本結構,將其命名為index.htm,另一個記事本文檔則命名為css.css。
% {- t( P8 Q$ ]# l2 y4 `2 D$ w( K/ x
  下面,我們在<body></body>標籤對中寫入DIV的基本結構,代碼如下:, G. [& r1 y6 X

  l* `1 f5 x7 ^% B- E 程序代碼
* c( f" _; J' E! h/ M6 p& B) ?- h1 @+ l7 d6 I
<div id="container"><!--頁面層容器-->4 z+ s# [! ?% T8 ~& o; A+ Q/ A/ V
  <div id="Header"><!--頁面頭部-->
, K9 b3 e/ T. X. E6 u+ o. D4 D  </div>6 ]# b. g+ {' l" W2 F
  <div id="PageBody"><!--頁面主體-->3 o% Z- f% X3 O5 k, K$ K7 c" Z0 W+ \
    <div id="Sidebar"><!--側邊欄-->
- s  v. _) L* X1 n' ~4 n    </div>
0 p% Q) K) A$ U    <div id="MainBody"><!--主體內容-->
5 G" N! E) E; M    </div>
7 g$ l7 M! |$ h  </div>8 w) M# ^+ T* Z
  <div id="Footer"><!--頁面底部-->
+ r" K, R  Y* v2 C  </div>
, B) ]! t( t8 _! j$ |7 z4 G; b</div>2 P/ v& ?4 `5 n' e
% y9 R0 g3 b! I4 \9 W# \! ?

5 `+ W2 x4 s; G8 \, @/ d+ W1 F. J% @; `+ b
  為了使以後閱讀代碼更簡易,我們應該添加相關註釋,接下來打開css.css文件,寫入CSS信息,代碼如下:! y2 Z% ?: [1 p& ^% ~
9 u- C# Q$ E( R, J

9 ^& C" ?( |' r' u1 C* [, p& U程序代碼% m" [/ r* M4 W: h
7 B' O1 m, j' T  u5 Y2 j
/*基本信息*/
& m% x  u) T" Q1 W! Cbody {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
, L7 G5 k6 |: g# t6 j0 P, ^. c/ r4 V+ }8 J
/*頁面層容器*/
' Q; ?4 u( ]8 q" g- U#container {width:100%}
4 b: R: u8 J! E" [, ?* Z! P' J
/ b0 |2 R3 F: Q7 e/*頁面頭部*/% t  ^' ]; ]* y! z" @9 f1 z
#Header {width:800px;margin:0 auto;height:100px;background:#FFCC99}: L* Z5 @4 q  ^3 J* ~2 d

5 L# j/ ~1 k( A, F0 W/*頁面主體*/
+ S$ G8 ^7 r, M5 m  F3 @#PageBody {width:800px;margin:0 auto;height:400px;background:#CCFF00}
- z7 g- p; }$ g; l! ^) I
# E; d8 ^, c0 _5 r: n( @# ?1 k4 C/*頁面底部*/
5 \) c" |: X) t; c. j% w. C. u/ b#Footer {width:800px;margin:0 auto;height:50px;background:#00FFFF}' J1 Y$ g- _/ N$ m% {9 {
( p7 U1 [" ^% [+ @4 u

! E: E8 l( }" c+ [( ]4 f9 z6 R1 M" }* U+ _- O- |4 ]% T
  把以上文件保存,用瀏覽器打開,這時我們已經可以看到基礎結構了,這個就是頁面的框架了。' X3 M& B/ H/ V# E
  關於以上CSS的說明(詳細請參考CSS2.0中文手冊,網上有下載):7 s. F9 k4 O  O/ R1 S4 g

$ U  U% G% Z% c* |8 c4 a. L* y  1、請養成良好的註釋習慣,這是非常重要的;" n' M$ X8 f& d8 o

' r3 p+ ?1 Z8 A% {( O  2、body是一個HTML元素,頁面中所有的內容都應該寫在這標籤對之內,我就不多說了;
9 F, e' u" E/ i; X7 U7 F9 c4 f
7 S1 G$ T2 ?% y  3、講解一些常用的CSS代碼的含義:( W2 B. m, {. A1 T

7 Z3 ~4 t" L: T% Z$ y: c4 C    font:12px Tahoma;- `0 d; x( ~. P4 |3 H" t9 _
    這裡使用了縮寫,完整的代碼應該是:font-size:12px;font-family:Tahoma;說明字體為12像素大小,字體為Tahoma格式;
9 e" f6 G# M1 @. I- E  y8 a- a
8 m% A: z1 W' j( k: _4 P9 d# ]    margin:0px;
8 j1 X* @4 G. I. v9 F    也使用了縮寫,完整的應該是:
- [; H& E$ W+ p4 U& {6 ?' m4 E- g' L+ `, A' n6 |" r" p& Y
    margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px( o- W, S2 [$ w1 E
    或6 p2 ]8 @: w8 `& a3 K. p' S" K
    margin:0px 0px 0px 0px
/ e: F' H# }( m& ^' a. h
# K9 W+ D' w9 b; Y9 r" }; {    順序是 上 / 右 / 下 / 左,你也可以書寫為margin:0(縮寫);4 E/ R4 ]$ K3 I( S& k9 b3 c
    以上樣式說明body部分對上右下左邊距為0像素,如果使用auto則是自動調整邊距,
' w, j  B+ g% R7 y. n3 ]+ k    另外還有以下幾種寫法:
+ u. N5 `5 Z1 A' ]9 \# `: v    margin:0px auto;
  W( Z# K9 v2 z+ V- p9 M- \7 G. o  O    說明上下邊距為0px,左右為自動調整;
6 P' ^* `* t: T, D& Z6 U( w    我們以後將使用到的padding屬性和margin有許多相似之處,他們的參數是一樣的,
& J5 q7 r/ ^. A" P7 \) l- m. @    只不過各自表示的含義不相同,margin是外部距離,而padding則是內部距離。
( _$ `* n" Y+ g6 a1 h) b' P. K4 M/ l- u+ z
    text-align:center' i0 b, d2 C+ U) \
    文字對齊方式,可以設置為左、右、中,這裡我將它設置為居中對齊。# L5 n. ~7 U" c# L) c- M

) ?1 e8 `8 f- _! ^# ?8 K- H- z    background:#FFF0 [$ r* W3 I# e) h/ i+ s
    設置背景色為白色,這裡顏色使用了縮寫,完整的應該是background:#FFFFFF。0 }' U3 m; e" s+ s* @2 L# a
    background可以用來給指定的層填充背景色、背景圖片,以後我們將用到如下格式:
4 y, n; P! l) @9 O  x' a- G    background:#ccc url('bg.gif') top left no-repeat;) r: M8 ~* B6 u* L! j" d
    表示:使用#CCC(灰度色)填充整個層,使用bg.gif做為背景圖片,
1 E6 S7 U  n- v; i. [3 x    top left6 X# L; k& L" F
    表示圖片位於當前層的左上端,no-repeat表示僅顯示圖片大小而不填充滿整個層。
  c) S, q" c+ N    top/right/left/bottom/center
3 R5 M# b/ `' \8 M% r! i5 S    用於定位背景圖片,分別表示 上 / 右 / 下 / 左 / 中;還可以使用
2 J5 {4 r( C: s: T" I: J. n3 c    background:url('bg.gif') 20px 100px;
/ @/ i+ A1 t8 N5 |    表示X座標為20像素,Y座標為100像素的精確定位;( }  X- [& o1 o1 D
    repeat/no-repeat/repeat-x/repeat-y
- ]3 i2 B! `+ L) a# v    分別表示 填充滿整個層 / 不填充 / 沿X軸填充 / 沿Y軸填充。
" O' x7 d0 T3 o( H1 z: x8 H2 s; \: n7 S& N
    height / width / color - p/ L* J3 T4 M& G3 |0 v$ G
    分別表示高度(px)、寬度(px)、字體顏色(HTML色系表)。
5 \& d' z- A  |% g5 F# S; }, D4 `' w# U; k' B" O
  4、如何使頁面居中?
2 z' J6 \0 X5 _$ O5 S, a/ Q! _$ @/ m    大家將代碼保存後可以看到,整個頁面是居中顯示的,那麼究竟是什麼原因使得頁面居中顯示呢?
- V3 q1 M0 I( `" L$ P5 L1 E: g. L    是因為我們在#container中使用了以下屬性:
8 E7 o" t) r! `/ V0 e- v0 I. m9 O1 Z    margin:0 auto;
8 m7 q: k4 z- u+ _2 R    按照前面的說明,可以知道,表示上下邊距為0,左右為自動,因此該層就會自動居中了。
- v' d$ V% D( Z2 X7 N, }& ^* [' G    如果要讓頁面居左,則取消掉auto值就可以了,因為默認就是居左顯示的。
1 q; r8 u; C! p  N- b+ u    通過margin:auto我們就可以輕易地使層自動居中了。2 {. V' o  d6 N0 M

: [5 u2 W; e8 H! W  5、這裡我只介紹這些常用的CSS屬性了,其他的請參看CSS2.0中文手冊。
現在進入貼吧,不用註冊就可以投稿了,把你的心情和經驗與大家一同分享吧!!請到相應的貼吧發貼哦,貼吧新開,人太少,不過希望大家能支持!!謝謝 點擊這裡【我要投稿】. t' \, Y- T  V
% u- W& H- F; d9 X
三、頁面頂部製作(1)
) A: v! T( }7 |( \2 `2 {# G
+ J. w# U4 {1 S: w  當我們寫好了頁面大致的DIV結構後,我們就可以開始細緻地對每一個部分進行製作了。
( X6 `  f! K8 s! O- k& `: w6 s; H5 {: ]) a( z5 s& \
  在上一章中我們寫入了一些樣式,那些樣式是為了預覽結構而寫入的,我們把css.css中的樣式全部清除掉,重新寫入以下樣式代碼:: Z1 R+ w2 Q: ]: M' S
  Q. S, M  p( q4 A- e
程序代碼9 z& S" G. A) M6 D
/*基本信息*/5 G4 Q0 R  g+ P1 X0 l
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
  t7 o* }3 c- Z$ F# q9 G  ca:link,a:visited {font-size:12px;text-decoration:none;}
+ y4 w8 i6 n7 I9 r2 \- E3 s  m/ ma:hover{}6 S% V$ C' m5 o  D" [5 B$ p

2 _1 f, c8 Y8 C/*頁面層容器*/
' O- A- J) E5 `- r#container {width:800px;margin:10px auto}
* @  P6 h' W) R2 M, j# o4 Z
# L% @+ P; Z7 t; R9 v. C) r2 g3 S8 M% [0 m+ Q" z# p
  樣式說明:) a9 G/ h% y3 P- U: c

( k% S( C: `8 U  K% N8 Q" r  a:link,a:visited {font-size:12px;text-decoration:none;}8 a* G) V9 B+ [3 V0 c0 L; t  E
  a:hover {}
  Z# d8 D+ R- y( P

* v* t( X5 r4 Y2 ]  M2 X  這兩項分別是控制頁面中超鏈接的樣式,具體我就不說明了,請大家參閱手冊。; I$ P' G: [# M( ~0 u2 T

) v5 M5 c  ]* F7 I+ `  #container {width:800px;margin:10px auto}" T  }, t' J( J& N& ?5 c: ?. R

1 L. X7 C& K  J# t  指定整個頁面的顯示區域。
2 ~# _7 n0 w# T6 U* H2 T  width:800px指定寬度為800像素,這裡根據實際所需設定。
& t! q# o" J/ j6 Z9 F$ A/ J! M/ Q, b5 B  margin:10px auto,則是頁面上、下邊距為10個像素,並且居中顯示。
/ {8 s: t7 k, j8 O2 e) {/ ^2 f4 o  上一章中我們講過,對層的margin屬性的左右邊距設置為auto可以讓層居中顯示。! }: ?% R3 E* A# u2 ?- D; T

  t" V' x, r. k7 c- l5 t2 Z  接下來,我們開始製作TOP部分,TOP部分包括了LOGO菜單Banner,首先我們要做的就是對設計好的圖片進行切片,以下是在FW下完成的切片:
7 T& C7 S; k, z6 Z0 K* }6 v$ q+ u' K! r  我將TOP部分切片為兩部分,第一部分包括了LOGO和一條橫線。由於LOGO圖片並沒有太多的顏色,這裡我於是將這一部分保存為GIF格式,調色板選擇為精確,選擇Alpha透明度,色版為白色(此處顏色應與背景色相同),導出為logo.gif,圖像寬度為800px& C, `, B2 ^( `; X# s0 `4 ^0 d' X

& U' v1 ^  i! @" T# [  到這裡,有的朋友就說了,* 為什麼要使用GIF格式?使用JPEG不是更好嗎?0 X& T! ^# X  T/ _& H
  因為GIF格式的圖片文件更小,這樣能使頁面載入的速度更快,當然使用此格式之前必須確定圖片並沒有使用太多的顏色,當我們使用了GIF格式時,從肉眼上並不能看出圖片有什麼太大的變化,因此這是可行的。
- f5 ^" L9 a7 L* [8 ^0 D  |5 w  w  |8 ?) |2 v" [/ {$ V; ^" H) s
  * 接下來的Banner部分還能使用GIF格式嗎?
) B  |/ g, J/ L3 [( g  _% b  答案是不能,因為Banner部分是一個細緻的圖片,如果使用GIF格式顏色會有太大的損失,所以必須使用JPEG格式,將文件導出為banner.jpg
5 d  }3 J3 o9 |- O+ f
6 ]. v/ l3 P* j, \0 R  * 合理的切片是非常之重要的,因為切片的方法正確與否決定了CSS書寫的簡易程度以及頁面載入速度。
2 a8 L" k* I5 u4 B6 a! D/ {0 A5 F0 X, j* z+ p& L; F7 {2 F* b) W
  切好片後,我們還需要對TOP部分進行分析並將DIV結構寫入Header中代碼如下:& K; q& V. X! {4 ^
2 |. ^4 j+ W8 x- I9 d3 h
程序代碼) Q" l  L) L5 S2 H3 c  f
  <div id="menu">
( b% n+ g& C/ z% g   <ul>
0 k7 F/ |# D' N; f% T1 c6 Z5 `    <li><a href="#">首頁</a></li>
1 e7 _& [! H) q- N- [    <li class="menuDiv"></li>/ A7 h. q# H2 d$ r" o
    <li><a href="#">博客</a></li>; p) a! X9 ^$ O( L9 L$ ?
    <li class="menuDiv"></li>
' u2 T3 T( x/ A8 v' |    <li><a href="#">設計</a></li>7 D% A2 K+ b7 q' t* s9 N+ [' y% |3 m! q
    <li class="menuDiv"></li>
3 M- _' M: v! H' i- D4 o    <li><a href="#">相冊</a></li>
- a' b, |: y. S9 x' G    <li class="menuDiv"></li>! I& Z+ t/ N; a1 ^' d
    <li><a href="#">論壇</a></li>
  _1 J+ l0 g7 T3 F5 B0 M" s- x    <li class="menuDiv"></li>
  @, g& M' Z+ |( u    <li><a href="#">關於</a></li>) b  U5 E7 r0 y. g' \6 s
   </ul>
$ |) l3 b5 @! j1 m' G# o: V" S; e! U  </div>  X6 L1 M) V* H& h( X5 S
  <div id="banner">8 C; w0 \6 r& B4 ]
  </div>
3 S4 o4 N( i# {  f% U
6 M8 B# C) R* b6 K) Q- I4 c) j; W2 Y. ?3 U: \& V) Z, m
  為什麼要這麼寫呢,因為對菜單使用列表<li>形式,可以在以後方便對菜單定制樣式。
% |; E* X) \5 `) ?' Z/ B% g4 q
. `  O/ t" [% o$ W  而為什麼要添加以下代碼呢?8 T. F7 M. E8 c: f3 y
  <li class="menuDiv"></li>0 e7 s3 h3 ^1 ~$ ^8 J
  插入這一段代碼是可以方便地對菜單選項之間插入一些分隔樣式,例如預覽圖中的豎線分隔
4 d/ Z0 V2 P$ c7 `; u8 Y  W3 R- y" S. l  b) z
  然後我們在css.css中再寫入以下樣式:
0 A3 ]* W0 `$ o9 G, s; ]  c: l. s" F& L+ }" {
程序代碼5 K- l8 b! j# N8 E3 Q4 n7 d
/*頁面頭部*/
  X" s# \" ?. e1 K% R0 |: I#header {background:url(logo.gif) no-repeat}
# ?+ d, K" ~  l6 b1 y
; e7 ?: \: K3 y( N4 I  ^
5 T  I/ I( m4 Y8 y7 H  樣式說明:
2 ?/ w( C- t+ C! \* e  #header {background:url(logo.gif) no-repeat}
5 z* @+ S+ m0 e2 i  給頁面頭部分加入一個背景圖片LOGO,並且不作填充。$ \+ K) S5 O& M9 E" g

1 t' X" G* ?! N$ A  z  這裡,我們沒有指定header層的高度,為什麼不指定呢?
* o6 Y+ D0 Y  D7 B; i$ s) E
# P, e$ K! T1 B  因為header層中還有菜單和banner項,所以層的高度暫時是未知的,而層的屬性又可以讓層根據內容自動設定調整,因此我們並不需要指定高度。
5 q8 i. i9 d9 a' D   現在進入貼吧,不用註冊就可以投稿了,把你的心情和經驗與大家一同分享吧!!請到相應的貼吧發貼哦,貼吧新開,人太少,不過希望大家能支持!!謝謝 點擊這裡【我要投稿】  p" |1 [' l2 [! m  [- w
( ]5 M8 q5 B  M1 S- ~
三、頁面頂部製作(2)----使用列表<li>製作菜單( h& E9 i% v2 P" u  K7 G/ h
  n4 f( B" k, H2 W$ Z  l3 i# \
  開始此節的學習前,請確認你已經參照之前的幾節內容寫入了DIV、CSS到index.htm和css.css文件中。
4 h& u: E$ m, l$ Y  這一節我將告訴大家如何用列表<li>來製作菜單。 , \. @3 j0 s& m; q) X2 t. |4 U' l' Q
程序代碼& ~! f' g1 `/ w6 B+ B9 a9 W( P
        <div id="menu">
  j) ^$ |2 l* |' r2 O          <ul>
/ ^1 _7 i' L4 }, w. |4 W0 W            <li><a href="#">首頁</a></li>2 T* q. V- z" T, R- S  t
            <li class="menuDiv"></li>5 s2 ?4 ]0 @# Y; l* Z$ E
            <li><a href="#">博客</a></li>
, @. }, X" Z: B7 D, D0 N  u/ x4 K            <li class="menuDiv"></li>! V: A, b1 ?% s$ h/ p4 @
            <li><a href="#">設計</a></li>3 P6 f6 T! z  H% ^# Q# D
            <li class="menuDiv"></li>( u: m$ T0 N. }) @' M
            <li><a href="#">相冊</a></li>
, h6 m. a( t- Z! d6 K% |            <li class="menuDiv"></li>8 s! p! K  b0 Q7 E! n2 Q8 t4 F
            <li><a href="#">論壇</a></li>
" ^- L' \3 `5 \            <li class="menuDiv"></li>
6 {& k5 D3 y. y! I3 c            <li><a href="#">關於</a></li>0 u0 r9 R% T: w5 U( `2 {$ J5 L# E
          </ul>: {5 W; l; n3 O7 a' H
        </div>
( E6 I8 k: A3 A4 I, V- _; F& a5 @2 f. j% u& ?/ l# o0 W
. r% |0 S1 `/ b3 ~" {0 b! Q7 Q$ S; d
  以上是這部分的結構,有關於<ul></ul>、<li></li>這兩個HTML元素大家自己去參考相關的內容吧,它們最主要的作用就是在HTML中以列表的形式來顯示一些信息。
5 F* A5 Q* ~/ N  P. `9 l9 J
# ~5 j4 B1 O9 Z! U( l) @  還有一點需要大家一定要分清楚的,當在HTML中定義為id="divID"時,在CSS對應的設置語法則是#divID{} ,如果在HTML中定義為class="divID"時,則在CSS中對應的設置語法是.divID。2 }. q9 g" a, J! x% ~
  如果id="divID"這個層中包括了一個<img></img>,則這個img在CSS中對應的設置語法應該是#divID img {},同樣,如果是包含在class="divID"這個層中時,則設置語法應該是.divID img {},這一點希望大家要分清楚了。
* k. h2 j* Z1 i/ B& v/ y" x9 T  另外,HTML中的一切元素都是可以定義的,例如table、tr、td、th、form、img、input...等等,如果你要在CSS中設置它們,則直接寫入元素的名稱加上一對大括號{}就可以了。所有的CSS代碼都應該寫在大括號{}中。
& Q2 k7 g1 i+ ^1 M& W
* m" H. [3 P% D% C8 x6 \  按照上面的介紹,我們先在css.css中寫入以下代碼:
6 D. V: k9 f6 P* `% y1 G: ] 程序代碼! B1 W# A) z, J
#menu ul {list-style:none;margin:0px;}' F/ H0 J4 M$ B/ y. J6 e7 ^
#menu ul li {float:left;}  n' y9 }% U* U8 o

/ Q. |$ j0 Q8 p7 x; v" e4 b) U' H, o& l" [' F3 s; e
  解釋一下:
; h+ ?5 r& l( L  G  #menu ul {list-style:none;margin:0px;}! Y: s7 p4 T# }# B8 S9 b3 l
  list-style:none,這一句是取消列表前點,因為我們不需要這些點。
7 j: `7 V/ X  w" s  margin:0px,這一句是刪除UL的縮進,這樣做可以使所有的列表內容都不縮進。$ A7 X% R0 u' f! u: E+ g/ m
1 ?7 W+ V8 U+ t7 t- w
  #menu ul li {float:left;}
# a( ]5 E+ m% a5 p( g: i9 x$ L  這裡的 float:left 的左右是讓內容都在同一行顯示,因此使用了浮動屬性(float)。
) B: a, z2 Z/ R9 m6 @3 I& b/ K& X: v8 O' C2 z  X
  到這一步,建議大家先保存預覽一下效果,我們再添加下面的內容,效果如下:4 x2 y+ f- C( r3 n

6 s+ j6 w- w4 w6 o
4 S- C- @# ?) `; k2 q
6 }; z) L& `6 d, S  ~$ S  這時,列表內容是排列在一行,我們在#menu ul li {}再加入代碼margin:0 10px
+ I/ t4 g' Q% W0 b- a: P 程序代碼
' K6 L; c: z- ~/ \0 b" q#menu ul {list-style:none;margin:0px;}7 j6 m% r8 }& a" p/ B
#menu ul li {float:left;margin:0 10px}
) z6 n5 W# I6 Y0 v/ K' K" |
0 P' W" [# `& }$ Q7 ^7 y
# E4 Q4 G0 `; Z: E- U4 c7 B. Z5 A  margin:0 10px的作用就是讓列表內容之間產生一個20像素的距離(左:10px,右:10px),預覽的效果如下:
4 N6 Z( u# u$ Y  ^- I. r# e0 o6 p/ V5 z* x8 H2 a" d- J

+ P8 G* ^7 c+ B+ g  現在,雛形已經出來了,我們再來固定菜單的位置,把代碼改成如下:
0 Y) U. A) K3 J2 d) Y4 B2 a# B1 x程序代碼  C1 U% ?3 M. |2 Y& i/ w
#menu {padding:20px 20px 0 0}
- H* E% Y0 L  k) I; f$ Z+ s/*利用padding:20px 20px 0 0來固定菜單位置*/
, Q: j8 [& p' p1 h4 b; {# a* D1 X#menu ul {float:right;list-style:none;margin:0px;}1 D' g7 e" E6 Y( o
/*添加了float:right使得菜單位於頁面右側*/
0 D2 b  g. I* d& d" H( T#menu ul li {float:left;margin:0 10px}
) o+ L! N4 u0 W# r
* p9 V; X5 O3 g: `0 G0 d! {  A3 H9 D3 d6 Y9 H" Q- j$ R
1 e* f* b/ O# u0 s8 a5 i/ x
  這時,位置已經確定了,可是構思圖中,菜單選項之間還有一條豎線,怎麼辦呢?
: `7 O" x- H0 B8 x  別忘了,我們早就已經留好了一個空的<li class="menuDiv"></li>,要想加入豎線就使用它了。
2 E$ Y$ G& \% p  按照上面說的方法,我們再添加以下代碼: 4 l/ `0 q- S+ b" @4 p1 z3 ~" H
程序代碼
, M- Y7 X: A/ C5 Q3 x- F.menuDiv {width:1px;height:28px;background:#999}
! p8 T4 w* ?" E% E- c- K/ w* x: ^8 ~4 Q( Q, l& f, B8 Z
,保存預覽一下,豎線是否已經出來了?關於這段代碼就不多講了,應該是很容易理解的。
/ a; _% m, J  s' [1 v0 a5 X; h
3 ~& r9 C+ d7 g+ g% E: D( n, }1 `/ S4 L# |

1 S: g+ [) m7 g+ N2 Q3 Z  不過,菜單選項的文字卻在頂部,我們再修改成以下代碼: ' \% c" |- d/ O) M
程序代碼
- C3 J, E  Z! V#menu ul li {float:left;margin:0 10px;display:block;line-height:28px}
! ?. r; C. C4 Y+ x8 a' `
) t8 i# ^2 D( D; r+ r' [  k& F% g# D5 G4 l/ J
  關於display:block;line-height:28px大家可以去參閱一下手冊,我就不多講了。6 y/ _! O3 Z) Q1 {# b9 m

, ~# {* d+ J' Y+ @# p  效果基本上已經實現了,剩下的就是修改菜單的超鏈接樣式,在css.css中添加以下代碼: & B2 T2 q6 C: h
程序代碼
" q  v& e% w/ d5 Z. K) {#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
" v  j1 A; T, w6 |#menu ul li a:hover{}7 K9 H9 f! T4 ^

/ a+ x/ \) a( H2 i8 F8 W, \, A7 t3 v/ J- [5 t" p* @1 L
  這個也不多說了,沒什麼好說的了,最後的效果如下:( H4 u5 d: S+ I" k

% I2 @: W# C9 ^& ?/ p/ `7 t0 F/ X! `/ v, a$ ?$ F, z5 _9 o
9 D- h) z$ r8 [; |5 [/ f+ f$ V
  這一節到這裡就完畢了,順便把素材提供給大家:1 W. g: ^+ w6 D# N) x+ ]) ]2 ]
  構思圖: 點擊下載
- W8 d1 U3 s* y5 s; R  HTML和CSS源文件: 點擊下載6 E. ]2 |' `( d# Q* k0 A( D1 Y
四、頁面製作(1)----用好border和clear
7 r2 I/ K$ U& @% i( H$ J! D3 L1 q1 G. V9 {) L
  由於找工作找房子的原因,隔了這麼久才能開始寫教程,心裡感覺很對不起一直在關注本站的朋友,今天是找到房子的第二天,於是趕快繼續寫教程。6 }5 {6 b8 c9 `, S6 P% u

! G' j2 `. t& X7 y" H0 W6 g  這一節裡面,主要就是想告訴大家如何使用好borderclear這兩個屬性。# A- \% i  E! P: g) h
' U" ]* t! K# \5 P$ `
  首先,如果你曾用過table製作網頁,你就應該知道,如果要在表格中繪製一條虛線該如何做,那需要製作一個很小的圖片來填充,其實我們還有更簡單的辦法,只要在<td></td>中加入這麼一段就可以了,你可以試試:6 B, L; S- y7 _5 H9 O" w
  <div style="border-bottom:1px dashed #ccc"></div>
3 `( \; R. L- i' Q0 Z9 X" S/ y8 K6 W* {5 P4 Q9 M2 \* A
  大家可以再次參考手冊,然後你就能明白dashed、solid、dotted...等的作用,利用它們你可以製作出許多效果來,實線、虛線、雙線、陰影線等等。: |) s0 Z8 C3 x+ G) d
0 C& [" W2 M, K) s% A# o0 U! D
程序代碼
% m) t' ^% a& M5 }0 P5 ~( Y<div id="banner"></div>! l. I5 s$ B: D! i' z2 m

: G- h! ^! @7 {" D* l. g! [9 m( v
' i1 I  C2 d6 M$ b! i: I  以上代碼便可以實現設計草圖中的banner,在css.css中加入以下樣式:; K% x: V' [) D3 h* n
* L% a: m2 K: B0 Z, r0 S% O5 _
程序代碼
2 ~7 k! G9 ~$ }; o( S5 y#banner {5 q* `* H: [9 T7 {+ b# l
    background:url(banner.jpg) 0 30px no-repeat; /*加入背景圖片*/
& m& {! z0 d  N2 I2 d! F    width:730px; /*設定層的寬度*/
$ K, }6 L! o4 T6 [    margin:auto; /*層居中*/! C+ c: J, G$ W$ v7 [
    height:240px; /*設定高度*/( v, q2 T/ |% d$ K8 b0 h" _
    border-bottom:5px solid #EFEFEF; /*畫一條淺灰色實線*/6 U& i1 k! v& [3 D& e5 O; Z, e
    clear:both /*清除浮動*/
1 K8 Z0 q5 u/ a8 H1 C- v}
' M: _4 }3 m/ }  {" g1 k
3 ~2 |, r2 y& T- [! a, C6 U* F& p; ?& Q
  通過border很容易就繪製出一條實線了,並且減少了圖片下載所佔用的網絡資源,使得頁面載入速度變得更快。5 z5 e8 j" d1 R* E( Z. L

0 }" p* D6 \% ]& D$ P6 ?* p! `  另一個要說明的就是clear:both,表示清除左、右所有的浮動,在接下來的佈局中我們還會用這個屬性:clear:left/right。在這裡添加clear:both是由於之前的ul、li元素設置了浮動,如果不清除則會影響banner層位置的設定。6 z. v9 f  B5 o
3 S9 N0 x' C. o6 {' d
程序代碼
5 \* i$ z% b6 Z<div id="pagebody"><!--頁面主體-->4 o; E) J7 u8 T* M
    <div id="sidebar"><!--側邊欄--># C4 ]+ {7 Z2 ~" G9 n
    </div>3 O6 ^9 q, o( Y' p/ s0 h6 [/ A
    <div id="mainbody"><!--主體內容-->
: ^; \0 {% S) J' @  Z    </div>% O* g$ g4 P  @7 J
</div>
$ z& S6 h. G% O' x- Y5 |5 A. Q, m4 v+ p; X( i
- b, t, t. z2 L5 b( c
  以上是頁面主體部分,我們在css.css中添加以下樣式:
( ^$ ^& I" |2 N! [8 `- w/ N" U$ e3 q
程序代碼" j+ u( ]: _3 P, M, W% ]. Q
#pagebody {0 s) _/ E# @# \0 Y
    width:730px; /*設定寬度*/
: W9 I) m! w4 r8 o! E    margin:8px auto; /*居中*/5 O. ?1 A3 g' M4 {' I0 u* E8 Y
}2 Y8 u9 c; L# Z3 M
#sidebar {
, c5 q6 F  ]9 ]/ l2 e3 ^/ O    width:160px; /*設定寬度*/1 E9 a" u3 P7 p; Y) q
    text-align:left; /*文字左對齊*/
- k" L4 x$ v/ I% z    float:left; /*浮動居左*/' p' S4 F- N" Z) s5 d4 b# K$ c
    clear:left; /*不允許左側存在浮動*/6 w$ N0 c! A6 n" Q
    overflow:hidden; /*超出寬度部分隱藏*/. F9 B% |( x! O* G9 R' l: D1 F
}" e: @0 V. ~) e. J. M# x2 a! M  z
#mainbody {5 a9 e# _3 F7 {3 i% ?" f( t& M4 t- l
    width:570px;
: d  @9 q+ H( @' b    text-align:left;- k( V9 y* Y' k
    float:right; /*浮動居右*/  t" {. \( |+ Z5 t
    clear:right; /*不允許右側存在浮動*/- V& W8 n! `( J' K9 g2 Y9 b: l  Q
    overflow:hidden
) u1 G+ n+ [, X6 J( L}9 K% w9 H" O0 `5 h& a
1 q! t$ `/ K- x1 l  ]0 c8 k. A

4 Y1 P/ \5 j- x: @3 y* }6 H  x  為了可以查看到效果,建議在#sidebar和#mainbody中加入以下代碼,預覽完成後可以刪除這段代碼:
2 z- x4 h6 O! d
( f% d2 A! ?/ Q% ]程序代碼
1 N% u8 q5 F4 D; [5 k( qborder:1px solid #E00;
1 `2 ~( ]/ D2 u6 dheight:200px3 A3 n! Q2 Y9 W" `2 O, I3 D( J
* r  o, p* s% E. t: z
$ ]( K7 T$ O6 x* N0 Q4 W
  保存預覽效果,可以發現這兩個層完美的浮動,在達到了我們佈局的要求,而兩個層的實際寬度應該160+2(border)+570+2=734px,已經超出了父層的寬度,由於clear的原因,這兩個層才不會出現錯位的情況,這樣可以使我們佈局的頁面不會因為內容太長(例如圖片)而導致錯位。
! Y3 r/ c( e. a( R/ ~" i
5 x- i$ Z( J* ~/ n  而之後添加的overflow:hidden則可以使內容太長(例如圖片)的部份自動被隱藏。通常我們會看到一些網頁在載入時,由於圖片太大,導致佈局被撐開,直到頁面下載完成才恢復正常,通過添加overflow:hidden就可以解決這個問題。
, ]8 Y; S$ t+ V+ J/ S# [6 h, a3 x+ |  r
  CSS中每一個屬性運用得當,就可以解決許多問題,或許它們與你在佈局的頁並沒有太大的關係,但是你必須知道這些屬性的作用,在遇到難題的時候,可以嘗試使用這些屬性去解決問題。# V3 x( D2 H: X1 o0 \2 U
您需要登錄後才可以回帖 登錄 | 免费注册

本版積分規則

过期高净值品牌域名预定抢注

點基

GMT+8, 2026-7-12 12:03

By DZ X3.5

小黑屋

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