網頁制作poluoluo文章簡介:將小型、現代的產品主頁由psd轉換成XHTML/CSS模板.
點擊下面的圖片將會看到本次制作的 demo 的效果。
如果你還沒有准備好,我們建議您閱讀完這個教程系列的第一部分: 用Photoshop設計一個小型、現代的產品主頁 , 因為第二部分需要第一部分做好了的psd文件。
如果你想跳過第一部分,你可以直接在第一部分中下載源文件,下面將會需要它才能繼續。
1 在桌面上創建新的空目錄,取名portfolio。
2 在portfolio目錄下面繼續創建images目錄用於存放圖片。
3 接下來創建兩個空文件 styles.css和index.html
4 用你最喜歡的文本編輯器打開index.html,我將在本教程中使用Adobe Dreamweaver。
5 在文檔的<head>標簽加入對styles.css的鏈接。可以使用如下代碼:
<link href="styles.css" rel="stylesheet" type="text/css" />
網頁制作poluoluo文章簡介:將小型、現代的產品主頁由psd轉換成XHTML/CSS模板.
以下是我們網頁模板的基本結構。我們從創建基本分區來開始我們的模板轉換工作。
6 我們將從在浏覽器中居中、包含整個文檔的主容器開始(也被稱之為外殼(wrapper))。在容器內部內的5個div將組成一個完整的頁面:這些div是:#top,
#welcome, #sidebar, #content 和 #footer。
HTML代碼如下:
<!--CONTAINER STARTS--> <div id="container"> <!--HEADER/NAVIGATION STARTS--> <div id="top"> </div> <!--HEADER/NAVIGATION ENDS--> <!--WELCOME AREA STARTS--> <div id="welcome"> </div> <!--WELCOME AREA ENDS--> <!--SIDEBAR STARTS--> <div id="sidebar"> </div> <!--SIDEBAR ENDS--> <!--CONTENT STARTS--> <div id="content"> </div> <!--CONTENT ENDS--> <!--FOOTER STARTS--> <div id="footer"> </div> <!--FOOTER ENDS--> </div> <!--CONTAINER ENDS-->
7 在我們把各個div轉成代碼之前,我們首先在頁面中加入背景。用Photoshop打開PSD文件,用矩形選框工具(M)選定頭部/導航和背景的一點區域;選定的寬度可以只有1px
(因為我們將會在後面使用css來水平重復它)。
8 在選定區域的底部,用滴管工具(I)記錄下色彩的16進制值。
9 選定好之後,點編輯 > 合並拷貝,創建一個新Photoshop文件(Ctrl+N),然後將選定區域復制到新文檔中。通常新建Photoshop畫布長寬是剪切板中選定區域的大小。如果不是,請確保他
們是一致的。
10 在新Photoshop文檔中,點文件 > 另存為 web 和設備所用格式(Alt+Shift+Ctrl+S),選擇PNG-8格式,保存文件為background.png,保存在images目錄下。
網頁制作poluoluo文章簡介:將小型、現代的產品主頁由psd轉換成XHTML/CSS模板.
11 現在我們已經將背景圖片從Photoshop中切片出來,我們可以開始寫代碼了。打開CSS文件(styles.css),然後寫入以下代碼:
* { margin: 0px; padding: 0px; border: none; } body { background-image: url(images/background.png); background-repeat: repeat-x; background-color: #001b32; font-family: Arial, Helvetica, sans-serif; font-size: 12px; color: #c8c8c8; } #container { margin: auto; width: 850px; }
讓我們來仔細的分析一下樣式代碼。
首先我們將所有元素的margin,padding,border的值歸零以避免跨浏覽器的兼容性。我們這個用到的是*選擇器。
接下來,我們樣式化 body 元素;我們將 background.png 設置為背景,通過 repeat-x 使它水平重復。同樣把背景色設置為深藍(#001b32)。
最後,我們把#container的margin設置為 auto 讓布局居中,並且設置寬度為850px。
12 現在我們接著制作模板的logo和站點標題。使用矩形選框工具(M),選定站點的標題和標示文本(以下圖為參考)。
13 就像處理 background.png 一樣,復制這個區域到新文檔,然後保存為title.png放在images目錄。
14 我們轉到HTML文檔中,在#top這個div裡面我們創建一個新div,ID為title。
15 在#title div裡面,加入<h1>元素來放置我們的站點名;同樣需要創建一個超鏈接(<a>)鏈接到站點主頁。對於這個模板,我們僅把href屬性的值設為#,如果需要在實際中使用這
個模板,你可以用反斜槓(/)來代替#。
HTML代碼如下:
<!--HEADER/NAVIGATION STARTS--> <div id="top"> <!--WEBSITE TITLE STARTS--> <div id="title"> <h1><a href="#" title="Your Website Name">Your Website Name</a></h1> </div> <!--WEBSITE TITLE ENDS--> </div> <!--HEADER/NAVIGATION ENDS-->
16 現在我們轉向樣式表。樣式化#top區域元素。代碼如下。
#top { float: left; width: 850px; height: 119px; } #title { float: left; width: 278px; height: 74px; padding-top: 45px; } #title h1 { display: block; float: left; width: 278px; height: 74px; text-indent: -9999px; } #title h1 a { display: block; width: 100%; height: 100%; background-image: url(images/title.png); background-repeat: no-repeat; background-position: 0 0; }
讓我們來仔細分析一下上面的代碼。
首先我們需要將#top浮動到左邊,然後給定一個固定的寬度和高度。
寬度應該和#container等寬,850px,高度應該和淺灰色區域等高,119px。
接下來,我們使用一種CSS背景圖片替換的技術使用text-indent方法。我們將#title h1
裡面的文字向左縮進-9999px,將文字推出了浏覽器的可視區域。這個技術對於屏幕閱讀器的可訪問性和搜索引擎優化都有好處。
17 在#top裡面,#title下面我們創建一個ID為navigation的div。在#navigation裡面增加一個無序列表,class值設為nav-links。以下
是#navigation的代碼段。
<!--NAVIGATION STARTS--> <div id="navigation"> <ul> <li><a href="#" title="home">home</a></li> <li><a href="#" title="about">about</a></li> <li><a href="#" title="portfolio">portfolio</a></li> <li><a href="#" title="contact">contact</a></li> </ul> </div> <!--NAVIGATION ENDS-->
給無序列表設定一個nav-links的類主要目錄是為了在鏈接CSS的時候不會影響到頁面上的其他無序列表。需要注意的是,最後一個列表項加入borderx2的類,意為“邊框乘2”
;因為導航中的列表項都有一個分割線,我們需要給最後一樣的左右都加上一個1px的邊框(也就是邊框乘2)。
網頁制作poluoluo文章簡介:將小型、現代的產品主頁由psd轉換成XHTML/CSS模板.
18 在給導航加入CSS樣式之前,我們得首先把小小的懸停三角形切片。到Photoshop中使用矩形選框工具(M)選定這個三角形,復制透明背景的新文檔,保存為images目錄下的
nav_hover.png。
19 現在該是給導航加入CSS代碼的時候了。使用以下代碼。
.nav-links li a { float: left; width: 120px; height: 68px; text-decoration: none; text-transform: capitalize; color: #666666; font-size: 12px; text-align: center; padding-top: 51px; border-left-width: 1px; border-left-style: solid; border-left-color: #cecece; } .nav-links li a:hover { color: #00284a; background-image: url(images/nav_hover.png); background-repeat: no-repeat; background-position: center bottom; } li.borderx2 { border-right-width: 1px; border-right-style: solid; border-right-color: #cecece; }
首先,為了讓列表項挨個的顯示,我們將它們向左浮動。然後給他們固定的寬度高度,使他們之前的空間均衡。然後通過給text-decoration值none來去掉超鏈接默認的下劃
線。然後給每個列表項一個1px、灰色的左邊框。
然後通過:hover偽類來樣式化懸停效果。當鼠標懸停時,我們將列表項的背景設為nav_hover.png。
最後解決最後一個列表項右邊沒有分割線的問題,需要給.borderx2類聲明一個border屬性。
歡迎區域會被分割成兩個部分,左邊(#welcome-text)和右邊(#welcome-image)。
20 在index.html的#welcome div中加入兩個新的div,一個ID為welcome-text,一個ID為welcome-image。我們會在切片完成後將兩個div填充上內容。
網頁制作poluoluo文章簡介:將小型、現代的產品主頁由psd轉換成XHTML/CSS模板.
21 轉到PSD文件,關閉除了有漸變效果深藍背景的其他所有圖層(點擊圖層左邊的眼睛圖標)。
22 使用矩形選框工具(M)選定一個寬度不超過850px的矩形,可以通過第一部分的設定好的參考線來選定。
23 將這個深藍背景轉成web圖片content_background.png,放在images目錄下。使用同樣的方法,關閉除了歡迎圖片圖層的其他圖層,切片藍點和歡迎圖片(見一下參考)。
新區域的HTML類似如下。
<!--WELCOME AREA STARTS--> <div id="welcome"> <!--WELCOME TEXT STARTS--> <div id="welcome-text"> </div> <!--WELCOME TEXT ENDS--> <!--WELCOME IMAGE STARTS--> <div id="welcome-image"> <img src="images/welcome_image.png" alt="Welcome..." /> </div> <!--WELCOME IMAGE ENDS--> </div> <!--WELCOME AREA ENDS-->
24 在#welcome-text div中文名增加一些歡迎文字。使用<h2>標簽給歡迎文字增加標題,然後在以下添加無序列表。
25 在#welcome-image中添加歡迎圖片(本案例添加的是Six Revisions的網站裁圖)。
合起來,HTML代碼如下。
<!--WELCOME AREA STARTS--> <div id="welcome"> <!--WELCOME TEXT STARTS--> <div id="welcome-text"> <h2>welcome to <span>yourwebsite!</span></h2> <p>Lorem ipsum dolor sit amet, consectetur[...]</p> <p>Proin fringilla nunc lorem, in sollicitudin orci. Sed ut eros ligula.</p> <ul> <li>Lorem ipsum dolor sit amet...</li> <li>Lorem ipsum dolor sit amet...</li> <li>Lorem ipsum dolor sit amet...</li> <li>Lorem ipsum dolor sit amet...</li> </ul> </div> <!--WELCOME TEXT ENDS--> <!--WELCOME IMAGE STARTS--> <div id="welcome-image"> <img src="images/welcome_image.png" alt="Welcome..." /> </div> <!--WELCOME IMAGE ENDS--> </div> <!--WELCOME AREA ENDS-->
26 現在樣式化歡迎區域。復制以下代碼到CSS中,後面有對代碼的解釋。
#welcome { float: left; width: 850px; background-image: url(images/content_background.png); background-repeat: no-repeat; height: 326px; padding-top: 40px; } h2 { text-transform: uppercase; color: #ffffff; font-size: 16px; margin-bottom: 15px; } .heading-color2 { color: #9a9a9a; } #welcome-text { width: 406px; line-height: 18px; padding-top: 50px; float: left; text-align: justify; } #welcome-text { margin-bottom:10px; } .list li { text-decoration: none; background-image: url(images/bullet.png); background-repeat: no-repeat; list-style-type: none; float: left; width: 180px; padding-left: 20px; margin-top: 10px; background-position: left center; } #welcome-image { float: right; height: 326px; width: 427px; }
讓我們來詳解一下上面的代碼。首先,我們通過background屬性(content_background.png)給#welcome加入漸變背景,並且是不重復的(repeat: no-repeat)。讓後給這個div一個固定的寬度高度;寬度為模板內容寬度(850px),高度為歡迎圖片的高度(236px)。
通過text-transform屬性讓<h2>內的文字大寫。將‘yourwebsite’包裹在class為heading-color2的span中,賦予其不同的顏色。
無序列表加入類list,然後把背景設置為bullet.png,通過list-style-type設為none去掉默認列表項前面的圓點。
最後,為了讓#welcome-image在#welcome-text的右邊顯示,我們將其向右浮動,給定固定的寬度(在浮動元素中常用)。同樣給welcome_image.png一個固定的寬度高度值。
27 對於3D分割線,我打算通過加入類為separator的div,可以實現復用。使用矩形選框工具(M)選定區域寬度不能大於850px,高度不能超出3D分割線本身的大小。
28 用之前的方法將選區存為images目錄下的separator.png。
29 對於分割線的HTML和CSS相當簡單。在index.html中#welcome下面插入div。將 放入.separator的div中。
<!--WELCOME AREA ENDS--> <!--SEPARATOR STARTS--> <div> </div> <!--SEPARATOR ENDS-->
30 CSS文件中加入如下代碼。
.separator { background-image: url(images/separator.png); background-repeat: no-repeat; float: left; height: 17px; width: 850px; margin-top: 20px; margin-bottom: 20px; }
我們將.separator的background-image設定為separator.png。給定寬度850,然後向左浮動。height值等於separator.png的高度。然後給頂部和底部
margin設為20px,讓它們彼此之間有一定的間歇。
31 對於側邊欄,我們僅需要側邊欄框。這個教程中側邊欄框大小是固定的,但是如果需要可以很容易的擴展(這部分叫給大家自己完成)。使用矩形選框工具(M)選定這個側邊欄框;我的
選定范圍是259 x 259px.
32 存為images目錄下的contentbox.png。
33 使用矩形選框工具,設定寬度為1px,高度為2px。選定文字之間的分割線部分。
32 和往常一樣,存為images目錄下的divider.png 。選定很小是因為下面將通過CSS將其水平重復。
網頁制作poluoluo文章簡介:將小型、現代的產品主頁由psd轉換成XHTML/CSS模板.
35 在.separator層下面,是我們的#sidebar,將<h3>作為側邊欄標題。然後給無序列表加入類sidebar-list使樣式可以自定義。
<!--SEPARATOR ENDS--> <!--SIDEBAR STARTS--> <div id="sidebar"> <h3>lorem ipsum dolor</h3> <ul> <li>Lorem ipsum dolor sit amet, consectetur sit adipiscding...</li> <li>Lorem ipsum dolor sit amet, consectetur sit adipiscding...</li> <li>Lorem ipsum dolor sit amet, consectetur sit adipiscding...</li> </ul> </div> <!--SIDEBAR ENDS-->
36 CSS中加入如下代碼
#sidebar { float: left; height: 209px; width: 219px; background-image: url(images/contentbox.png); background-repeat: no-repeat; padding-top: 20px; padding-right: 20px; padding-bottom: 30px; padding-left: 20px; } h3 { text-transform: uppercase; color: #ffffff; text-align: center; margin-bottom: 20px; font-size: 12px; } .sidebar-list li { list-style-type: none; margin-top: 10px; padding-bottom: 10px; background-image: url(images/divider.png); background-repeat: repeat-x; background-position: bottom; }
我們給#sidebar和contentbox.png一樣的寬度高度。然後向左浮動,保證內容居左。同樣設定background-image為contentbox.png。
通過text-transform將h3文字大小,通過text-align讓文字居中。
最後通過list-style-type取值為none去掉.sidebar-list列表項的默認圓點,然後設定background-image為divider.png,水平重復
(repeat-x)。然後給定一些margin和padding值,讓他們之間留些空間。
37 內容區域相對簡單,因為只包含了一些段落和標題。在#content層中,加入二級標題(<h2>),然後通過span.heading-color2給第二部分的文字添加不同
的顏色。填充段落可以用lorem ipsum無意義文本。HTML代碼如下。
<!--CONTENT STARTS--> <div id="content"> <h2>welcome to <span>yourwebsite!</span></h2> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque.</p> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque.</p> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque.</p> </div> <!--CONTENT ENDS-->
38 #content層加入以下代碼。
#content { float: right; width: 550px; text-align: justify; } #content p { margin-bottom: 10px; }
為了讓#content在右邊顯示,我們將其向右浮動,然後給定一個固定的寬度。不給定一個固定的高度的原因是我們想通過內部文本來控制高度。然後給<p>加入頂部
和底部margin讓它們之間留有空間(因為之前我們已經將它們都歸零了,這步是必須的)。
39 就快要結束了,讓我們繼續!使用矩形選框工具,大小850px × 60px將也叫背景圖片選定。
40 頁腳很好轉換成代碼:我們之需要之前創建的#footer。在#footer層中,我們使用<p>加入一些版權文字。代碼如下:
<!--FOOTER STARTS--> <div id="footer"> <p>Copyright © Six Revisions - Design By Richard Carpenter</p> </div> <!--FOOTER ENDS-->
41 加入如下代碼。
#footer { float: left; width: 850px; background-image: url(images/footer.png); background-repeat: no-repeat; height: 60px; margin-top: 40px; padding-top: 25px; text-align: center; }
我們將#footer層的background-image屬性設置為footer.png;向左浮動;通過no-repeat保證背景圖的不重復。#footer寬度高度大小和footer.png相
等。然後在頂部通過margin給出一定空間。
我們做完了!謝謝閱讀本教程,我很期待大家的評論和問題!如果大家做的不錯,最終效果應該像這樣:
(點擊圖片查看在線demo)