swf.com.tw

2005/11/22

CSS入門(二):建立導覽列

作者: cubie 於 「 教學文件, CSS樣式表

CSS入門(二):建立導覽列
文∕趙英傑

本文將說明如何透過CSS樣式,把清單(list)文字調整成底下的顯示外觀,當成導覽列使用。

使用CSS樣式設定的清單文字

清單文字採用<ul>標籤定義清單的範圍,並使用<li>標籤定義個別項目,例如:

<ul>
 <li>首頁</li>
 <li>改造遊樂器</li>
 <li>聯繫我們</li>
</ul>

將產生如下的清單文字:

清單文字

底下是替每個清單文字加上超連結(<a>標籤)的HTML原始碼:

<ul>
 <li><a href="#">首頁</a></li>
 <li><a href="#">改造遊樂器</a></li>
 <li><a href="#">聯繫我們</a></li>
</ul>

設定網頁內容的CSS樣式之前,我們通常會採用 <div> 標籤定義網頁版面的區塊範圍,例如,把上述的清單元素定義成名叫“navi”區塊,其HTML語法如下:

<div  id="navi">
 <ul>
  <li><a href="#">首頁</a></li>
  <li><a href="#">改造遊樂器</a></li>
  <li><a href="#">聯繫我們</a></li>
 </ul>
</div>

如此,該清單文字區域將能被稱做“navi”。首先把 navi 區域的寬度(width)設定成 650 像素(如果導覽列的項目不多,可以設定成窄一點的數值):

<style type="text/css">
#navi {
  width:650px;
}
</style>

然後指定 navi 區域中,ul 區域裡的 li 元素的樣式。請注意底下的寫法,只有符合這種階層架構的 li 元素(navi > ul > li )會套用此樣式,網頁其他部分的<li>標籤樣式將維持不變:

#navi ul li {
 /* 設定清單文字範圍的寬度 */
 width:150px;
 /* 讓清單文字居中對齊 */
 text-align:center;
 /* 去除清單文字前面的小圓點*/
 list-style-type:none;
 /* 設定背景色 */
 background-color:#FF9900;
}

接著定義 navi 區域中,ul 區域裡的 li 元素後面的超連結文字(<a>標籤)的一般連結(link)已查閱(visited)滑入(hover)作用中(active)的樣式,將它們全都設定成白色、沒有底線:

#navi ul li a:link {
 color:#FFFFFF;
 text-decoration:none;
}
#navi ul li a:visited {
 color:#FFFFFF;
 text-decoration:none;
}
#navi ul li a:hover {
 /* 文字為白色 */
 color:#FFFFFF;
 /* 文字沒有裝飾(底線) */
 text-decoration:none;
 /* 背景為橙紅色 */
 background-color:#FF6600;
}
#navi ul li a:active {
 color:#FFFFFF;
 text-decoration:none;
}

到此,navi 區域的清單文字將呈現下圖的外觀,如您所見,滑入超連結時產生的背景色變換效果,僅限於超連結文字本身:

清單文字

為了讓navi > ul > ui > a超連結元素的背景色的顯示(display模式能充滿整個區域,並且增加超連結文字與邊框的間隔(padding,請加入底下的CSS定義:

#navi ul li a {
 /* 充滿整個區塊 */
 display:block;
 /* 擴大區域內部空間 */
 padding:5px;
}

目前所設定的清單樣式將在 IE 6.0 瀏覽器顯示成:

清單文字

最後透過float(浮動,請參閱《Dreamweaver 2004中文版網頁設計寶典》書本 9-29 頁「文字的環繞排式效果」)樣式,讓各個清單元素靠左對齊,並且使用border-bottom(邊框底部)樣式在每個清單元素底下加上灰色的裝飾線條,以及採用margin-right(右邊留白)樣式,讓每個清單元素的右邊都餘留1個像素寬。

#navi ul li{
 width:150px;
 text-align:center;
 list-style-type:none;
 background-color:#FF9900;
 /* 讓各個清單元素靠左對齊 */
 float:left;
 /* 設定邊框底部的樣式 */
 border-bottom:#CCCCCC solid 3px;
 /* 右邊留白1像素 */
 margin-right:1px;
}

最後的結果如下:

使用CSS樣式設定的清單文字

下載完成的範例檔

' CSS入門(二):建立導覽列 ' 有 7 則迴響

使用 RSS 訂閱迴響,或者 TrackBack 至 ' CSS入門(二):建立導覽列 '。

  1. margot 說:

    簡潔清楚 非常棒

    2008/04/17 @ 11:08 am

  2. cubie 說:

    hi margot:

    謝謝你的鼓勵 :-)

    jeffrey

    2008/04/18 @ 8:54 am

  3. 說:

    謝謝
    之前一直都搞不懂,現在懂啦^^

    2008/07/09 @ 2:52 pm

  4. cubie 說:

    不客氣 :-)

    2008/07/09 @ 9:44 pm

  5. 調酒J 說:

    想請問cubie,像雅虎首頁的標籤式導覽 焦點新聞 運動 娛樂,滑鼠移過去之後不需要做點擊他會自動變換顯示內容,不曉得怎麼做的

    2009/06/19 @ 3:48 pm

  6. cubie 說:

    互動效果需要搭配JavaScript程式,它的原理就是當標籤感應到滑鼠滑入時,將屬於該區域的樣式設定成「顯示」狀態,其餘隱藏起來。

    像Yahoo那一類型的Tab(頁籤)式介面,許多JavaScript程式庫,例如,Yahoo自己的Yahoo UI(YUI),或者其他知名的Ext.Js和JQuery等等,都有現成的程式可用。

    2009/06/19 @ 11:39 pm

  7. [網頁設計] CSS語法 « Allen’s Blog 說:

    […] 利用CSS建立導覽列 […]

    2009/09/22 @ 9:21 am

撰寫迴響

:mrgreen: :neutral: :twisted: :shock: :smile: :???: :cool: :evil: :grin: :oops: :razz: :roll: :wink: :cry: :eek: :lol: :mad: :sad: