制作網(wǎng)站的第一步是網(wǎng)頁設(shè)置構(gòu)思,目標(biāo)就是設(shè)計出網(wǎng)頁應(yīng)該展示的形象。制作網(wǎng)頁的程序也比較多的,這里我們就以純html使用div+css網(wǎng)站制作實例介紹一下。
網(wǎng)頁設(shè)計階段一般來說還需要用PhotoShop或FireWorks(以下簡稱PS或FW)等圖片處理軟件將需要制作的界面布局簡單的構(gòu)畫出來,以下是我構(gòu)思好的界面布局圖。
下面,我們需要根據(jù)構(gòu)思圖來規(guī)劃一下頁面的布局,仔細(xì)分析一下該圖,我們不難發(fā)現(xiàn),圖片大致分為以下幾個部分:
1、頂部部分,其中又包括了LOGO、MENU和一幅Banner圖片;
2、內(nèi)容部分又可分為側(cè)邊欄、主體內(nèi)容;
3、底部,包括一些版權(quán)信息。
有了以上的分析,我們就可以很容易的布局了,我們設(shè)計層如下圖:
根據(jù)上圖,我再畫了一個實際的頁面布局圖,說明一下層的嵌套關(guān)系,這樣理解起來就會更簡單了。
DIV結(jié)構(gòu)如下:
│body {}
└#Container {}
├#Header {}
├#PageBody {}
│ ├#Sidebar {}
│ └#MainBody {}
└#Footer {}
至此,頁面布局與規(guī)劃已經(jīng)完成,接下來我們要做的就是開始書寫HTML代碼和CSS。
接下來我們在桌面新建一個文件夾,命名為DIV+CSS布局練習(xí),在文件夾下新建兩個空的記事本文檔,輸入以下內(nèi)容: !DOCTYPE html PUBLIC -//W3C//DTD XHTML 1.0 Trans
接下來我們在桌面新建一個文件夾,命名為“DIV+CSS布局練習(xí)”,在文件夾下新建兩個空的記事本文檔,輸入以下內(nèi)容:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″ />
<title>無標(biāo)題文檔</title>
<link href=”css.css” rel=”stylesheet” type=”text/css” />
</head><body>
</body>
</html>
這是XHTML的基本結(jié)構(gòu),將其命名為index.htm,另一個記事本文檔則命名為css.css。
下面,我們在<body></body>標(biāo)簽對中寫入DIV的基本結(jié)構(gòu),代碼如下:
<div id=”container”>[color=#aaaaaa]<!–頁面層容器–>[/color]
<div id=”Header”>[color=#aaaaaa]<!–頁面頭部–>[/color]
</div>
<div id=”PageBody”>[color=#aaaaaa]<!–頁面主體–>[/color]
<div id=”Sidebar”>[color=#aaaaaa]<!–側(cè)邊欄–>[/color]
</div>
<div id=”MainBody”>[color=#aaaaaa]<!–主體內(nèi)容–>[/color]
</div>
</div>
<div id=”Footer”>[color=#aaaaaa]<!–頁面底部–>[/color]
</div>
</div>
為了使以后閱讀代碼更簡易,我們應(yīng)該添加相關(guān)注釋,接下來打開css.css文件,寫入CSS信息,代碼如下:
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
把以上文件保存,用瀏覽器打開,這時我們已經(jīng)可以看到基礎(chǔ)結(jié)構(gòu)了,這個就是頁面的框架了。
關(guān)于以上CSS的說明(詳細(xì)請參考CSS2.0中文手冊,網(wǎng)上有下載):
1、請養(yǎng)成良好的注釋習(xí)慣,這是非常重要的;
2、body是一個HTML元素,頁面中所有的內(nèi)容都應(yīng)該寫在這標(biāo)簽對之內(nèi),我就不多說了;
3、講解一些常用的CSS代碼的含義:
font:12px Tahoma;
這里使用了縮寫,完整的代碼應(yīng)該是:font-size:12px;font-family:Tahoma;說明字體為12像素大小,字體為Tahoma格式;
margin:0px;
也使用了縮寫,完整的應(yīng)該是:
margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px
或
margin:0px 0px 0px 0px
順序是 上 / 右 / 下 / 左,你也可以書寫為margin:0(縮寫);
以上樣式說明body部分對上右下左邊距為0像素,如果使用auto則是自動調(diào)整邊距,
另外還有以下幾種寫法:
margin:0px auto;
說明上下邊距為0px,左右為自動調(diào)整;
我們以后將使用到的padding屬性和margin有許多相似之處,他們的參數(shù)是一樣的,
只不過各自表示的含義不相同,margin是外部距離,而padding則是內(nèi)部距離。
text-align:center
文字對齊方式,可以設(shè)置為左、右、中,這里我將它設(shè)置為居中對齊。
background:#FFF
設(shè)置背景色為白色,這里顏色使用了縮寫,完整的應(yīng)該是background:#FFFFFF。
background可以用來給指定的層填充背景色、背景圖片,以后我們將用到如下格式:
background:#ccc url(‘bg.gif’) top left no-repeat;
表示:使用#CCC(灰度色)填充整個層,使用bg.gif做為背景圖片,
top left
表示圖片位于當(dāng)前層的左上端,no-repeat表示僅顯示圖片大小而不填充滿整個層。
top/right/left/bottom/center
用于定位背景圖片,分別表示 上 / 右 / 下 / 左 / 中;還可以使用
background:url(‘bg.gif’) 20px 100px;
表示X座標(biāo)為20像素,Y座標(biāo)為100像素的精確定位;
repeat/no-repeat/repeat-x/repeat-y
分別表示 填充滿整個層 / 不填充 / 沿X軸填充 / 沿Y軸填充。
height / width / color
分別表示高度(px)、寬度(px)、字體顏色(HTML色系表)。
4、如何使頁面居中?
大家將代碼保存后可以看到,整個頁面是居中顯示的,那么究竟是什么原因使得頁面居中顯示呢?
是因為我們在#container中使用了以下屬性:
margin:0 auto;
按照前面的說明,可以知道,表示上下邊距為0,左右為自動,因此該層就會自動居中了。
如果要讓頁面居左,則取消掉auto值就可以了,因為默認(rèn)就是居左顯示的。
通過margin:auto我們就可以輕易地使層自動居中了。
5、這里我只介紹這些常用的CSS屬性了,其他的請參看CSS2.0中文手冊。
當(dāng)我們寫好了頁面大致的DIV結(jié)構(gòu)后,我們就可以開始細(xì)致地對每一個部分進(jìn)行制作了。
在上一章中我們寫入了一些樣式,那些樣式是為了預(yù)覽結(jié)構(gòu)而寫入的,我們把css.css中的樣式全部清除掉,重新寫入以下樣式代碼:
body {font:12px Tahoma;margin:0px;text-align:center;background:#FFF;}
a:link,a:visited {font-size:12px;text-decoration:none;}
a:hover{}
#container {width:800px;margin:10px auto}
樣式說明:
a:link,a:visited {font-size:12px;text-decoration:none;}
a:hover {}
這兩項分別是控制頁面中超鏈接的樣式,具體我就不說明了,請大家參閱手冊。
#container {width:800px;margin:10px auto}
指定整個頁面的顯示區(qū)域。
width:800px指定寬度為800像素,這里根據(jù)實際所需設(shè)定。
margin:10px auto,則是頁面上、下邊距為10個像素,并且居中顯示。
上一章中我們講過,對層的margin屬性的左右邊距設(shè)置為auto可以讓層居中顯示。
接下來,我們開始制作TOP部分,TOP部分包括了 LOGO、菜單和Banner ,首先我們要做的就是對設(shè)計好的圖片進(jìn)行切片,以下是在FW下完成的切片: 我將TOP部分切
接下來,我們開始制作TOP部分,TOP部分包括了LOGO、菜單和Banner,首先我們要做的就是對設(shè)計好的圖片進(jìn)行切片,以下是在FW下完成的切片:
我將TOP部分切片為兩部分,第一部分包括了LOGO和一條橫線。由于LOGO圖片并沒有太多的顏色,這里我于是將這一部分保存為GIF格式,調(diào)色板選擇為精確,選擇Alpha透明度,色版為白色(此處顏色應(yīng)與背景色相同),導(dǎo)出為logo.gif,圖像寬度為800px。
到這里,有的朋友就說了,* 為什么要使用GIF格式?使用JPEG不是更好嗎?
因為GIF格式的圖片文件更小,這樣能使頁面載入的速度更快,當(dāng)然使用此格式之前必須確定圖片并沒有使用太多的顏色,當(dāng)我們使用了GIF格式時,從肉眼上并不能看出圖片有什么太大的變化,因此這是可行的。
* 接下來的Banner部分還能使用GIF格式嗎?
答案是不能,因為Banner部分是一個細(xì)致的圖片,如果使用GIF格式顏色會有太大的損失,所以必須使用JPEG格式,將文件導(dǎo)出為banner.jpg。
* 合理的切片是非常之重要的,因為切片的方法正確與否決定了CSS書寫的簡易程度以及頁面載入速度。
切好片后,我們還需要對TOP部分進(jìn)行分析并將DIV結(jié)構(gòu)寫入Header中代碼如下:
<div id=”menu”>
<ul>
<li><a href=”#”>首頁</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>博客</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>設(shè)計</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>相冊</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>論壇</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>關(guān)于</a></li>
</ul>
</div>
<div id=”banner”>
</div>
為什么要這么寫呢,因為對菜單使用列表<li>形式,可以在以后方便對菜單定制樣式。
而為什么要添加以下代碼呢?
<li class=”menuDiv”></li>
插入這一段代碼是可以方便地對菜單選項之間插入一些分隔樣式,例如預(yù)覽圖中的豎線分隔。
然后我們在css.css中再寫入以下樣式:
#header {background:url(logo.gif) no-repeat}
樣式說明:
#header {background:url(logo.gif) no-repeat}
給頁面頭部分加入一個背景圖片LOGO,并且不作填充。
這里,我們沒有指定header層的高度,為什么不指定呢?
因為header層中還有菜單和banner項,所以層的高度暫時是未知的,而層的屬性又可以讓層根據(jù)內(nèi)容自動設(shè)定調(diào)整,因此我們并不需要指定高度。
使用列表li制作菜單開始此節(jié)的學(xué)習(xí)前,請確認(rèn)你已經(jīng)參照之前的幾節(jié)內(nèi)容寫入了DIV、CSS到index.htm和css.css文件中。這一節(jié)我將告訴大家如何用列表li來制
使用列表<li>制作菜單
開始此節(jié)的學(xué)習(xí)前,請確認(rèn)你已經(jīng)參照之前的幾節(jié)內(nèi)容寫入了DIV、CSS到index.htm和css.css文件中。
這一節(jié)我將告訴大家如何用列表<li>來制作菜單。
<div id=”menu”>
<ul>
<li><a href=”#”>首頁</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>博客</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>設(shè)計</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>相冊</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>論壇</a></li>
<li class=”menuDiv”></li>
<li><a href=”#”>關(guān)于</a></li>
</ul>
</div>
以上是這部分的結(jié)構(gòu),有關(guān)于<ul></ul>、<li></li>這兩個HTML元素大家自己去參考相關(guān)的內(nèi)容吧,它們最主要的作用就是在HTML中以列表的形式來顯示一些信息。
還有一點需要大家一定要分清楚的,當(dāng)在HTML中定義為id=”divID“時,在CSS對應(yīng)的設(shè)置語法則是#divID{}?,如果在HTML中定義為class=”divID”時,則在CSS中對應(yīng)的設(shè)置語法是.divID。
如果id=”divID”這個層中包括了一個<img></img>,則這個img在CSS中對應(yīng)的設(shè)置語法應(yīng)該是#divID img {},同樣,如果是包含在class=”divID”這個層中時,則設(shè)置語法應(yīng)該是.divID img {},這一點希望大家要分清楚了。
另外,HTML中的一切元素都是可以定義的,例如table、tr、td、th、form、img、input…等等,如果你要在CSS中設(shè)置它們,則直接寫入元素的名稱加上一對大括號{}就可以了。所有的CSS代碼都應(yīng)該寫在大括號{}中。
按照上面的介紹,我們先在css.css中寫入以下代碼:
#menu ul {list-style:none;margin:0px;}
#menu ul li {float:left;}
解釋一下:
#menu ul {list-style:none;margin:0px;}
list-style:none,這一句是取消列表前點,因為我們不需要這些點。
margin:0px,這一句是刪除UL的縮進(jìn),這樣做可以使所有的列表內(nèi)容都不縮進(jìn)。
#menu ul li {float:left;}
這里的 float:left 的左右是讓內(nèi)容都在同一行顯示,因此使用了浮動屬性(float)。
到這一步,建議大家先保存預(yù)覽一下效果,我們再添加下面的內(nèi)容,效果如下:
這時,列表內(nèi)容是排列在一行,我們在#menu ul li {}再加入代碼margin:0 10px
#menu ul {list-style:none;margin:0px;}
#menu ul li {float:left;margin:0 10px}
margin:0 10px的作用就是讓列表內(nèi)容之間產(chǎn)生一個20像素的距離(左:10px,右:10px),預(yù)覽的效果如下:
現(xiàn)在,雛形已經(jīng)出來了,我們再來固定菜單的位置,把代碼改成如下:
#menu {padding:20px 20px 0 0}
#menu ul {float:right;list-style:none;margin:0px;}
#menu ul li {float:left;margin:0 10px}
這時,位置已經(jīng)確定了,可是構(gòu)思圖中,菜單選項之間還有一條豎線,怎么辦呢?
別忘了,我們早就已經(jīng)留好了一個空的<li class=”menuDiv”></li>,要想加入豎線就使用它了。
按照上面說的方法,我們再添加以下代碼:
.menuDiv {width:1px;height:28px;background:#999}
保存預(yù)覽一下,豎線是否已經(jīng)出來了?關(guān)于這段代碼就不多講了,應(yīng)該是很容易理解的。
不過,菜單選項的文字卻在頂部,我們再修改成以下代碼:
#menu ul li {float:left;margin:0 10px;display:block;line-height:28px}
關(guān)于display:block;line-height:28px大家可以去參閱一下手冊,我就不多講了。
效果基本上已經(jīng)實現(xiàn)了,剩下的就是修改菜單的超鏈接樣式,在css.css中添加以下代碼:
#menu ul li a:link,#menu ul li a:visited {font-weight:bold;color:#666}
#menu ul li a:hover{}
這個也不多說了,沒什么好說的了,最后的效果如下:
這一節(jié)里面,主要就是想告訴大家如何使用好border和clear這兩個屬性。首先,如果你曾用過table制作網(wǎng)頁,你就應(yīng)該知道,如果要在表格中繪制一條虛線該如何做,那需要制作一個很小的圖片來填充,其實我們還有更簡單的辦法,只要在<td></td>中加入這么一段就可以了,你可以試試:
<div ></div>
大家可以再次參考手冊,然后你就能明白dashed、solid、dotted…等的作用,利用它們你可以制作出許多效果來,實線、虛線、雙線、陰影線等等。
<div id=”banner”></div>
以上代碼便可以實現(xiàn)設(shè)計草圖中的banner,在css.css中加入以下樣式:
#banner {
background:url(banner.jpg) 0 30px no-repeat;
width:730px;
margin:auto;
height:240px;
border-bottom:5px solid #EFEFEF;
clear:both
}
通過border很容易就繪制出一條實線了,并且減少了圖片下載所占用的網(wǎng)絡(luò)資源,使得頁面載入速度變得更快。
另一個要說明的就是clear:both,表示清除左、右所有的浮動,在接下來的布局中我們還會用這個屬性:clear:left/right。在這里添加clear:both是由于之前的ul、li元素設(shè)置了浮動,如果不清除則會影響banner層位置的設(shè)定。
<div id=”pagebody”><!–頁面主體–>
<div id=”sidebar”><!–側(cè)邊欄–>
</div>
<div id=”mainbody”><!–主體內(nèi)容–>
</div>
</div>
以上是頁面主體部分,我們在css.css中添加以下樣式:
#pagebody {
width:730px;
margin:8px auto;
}
#sidebar {
width:160px;
text-align:left;
float:left;
clear:left;
overflow:hidden;
}
#mainbody {
width:570px;
text-align:left;
float:right;
clear:right;
overflow:hidden
}
為了可以查看到效果,建議在#sidebar和#mainbody中加入以下代碼,預(yù)覽完成后可以刪除這段代碼:
border:1px solid #E00;
height:200px
保存預(yù)覽效果,可以發(fā)現(xiàn)這兩個層完美的浮動,在達(dá)到了我們布局的要求,而兩個層的實際寬度應(yīng)該 160+2(border)+570+2=734px,已經(jīng)超出了父層的寬度,由于clear的原因,這兩個層才不會出現(xiàn)錯位的情況,這樣可以使我們布局的頁面不會因為內(nèi)容太長(例如圖片)而導(dǎo)致錯位。
而之后添加的overflow:hidden則可以使內(nèi)容太長(例如圖片)的部份自動被隱藏。通常我們會看到一些網(wǎng)頁在載入時,由于圖片太大,導(dǎo)致布局被撐開,直到頁面下載完成才恢復(fù)正常,通過添加overflow:hidden就可以解決這個問題。
CSS中每一個屬性運用得當(dāng),就可以解決許多問題,或許它們與你在布局的頁并沒有太大的關(guān)系,但是你必須知道這些屬性的作用,在遇到難題的時候,可以嘗試使用這些屬性去解決問題。
免費空間網(wǎng)站-中國免費空間服務(wù)商-最后的一款免費空間等你來領(lǐng)取。
域名頻道自助建站系統(tǒng)基于云計算,更穩(wěn)定,99.99%的服務(wù)可用性,運行在域名頻道云計算平臺上。
域名頻道專人駐守,支持電話、在線等多種聯(lián)系方式 24x7x365不間斷監(jiān)控,機(jī)房實地應(yīng)急響應(yīng),獨有服務(wù)器管理監(jiān)控平臺,隨時了解服務(wù)器信息,確保無憂暢行。
來域名頻道使用云自助建站,操作簡單,服務(wù)有保障,詳情進(jìn)入http://m.chouwenlao.cn/web/