css利用一張背景圖制作導(dǎo)航菜單實(shí)現(xiàn)思路及代碼
發(fā)布時(shí)間:2013-03-28 16:43:37 作者:佚名
我要評論
利用一張背景圖片來實(shí)現(xiàn)菜單的懸停狀態(tài),沒有什么不可思議完全可以辦得到,僅這一張圖片,我們實(shí)現(xiàn)一個(gè)橫行CSS菜單。并設(shè)置它們的懸停效果,感興趣的朋友可以參考下哈,希望可以幫助到你
今天介紹的這款簡單非常簡單,利用一張背景圖片來實(shí)現(xiàn)菜單的懸停狀態(tài)。我們看下面的圖片:
僅這一張圖片,我們實(shí)現(xiàn)一個(gè)橫行CSS菜單。并設(shè)置它們的懸停效果。我們該如何做呢?看下面的圖片:
這是一個(gè)示意圖。最底層是ul,這是一個(gè)容器,我們將列表項(xiàng)li全部置入其中。為了方便說明,示意圖中僅畫了一個(gè)li。實(shí)際此例中有六個(gè)li,全部向左浮動(dòng),實(shí)現(xiàn)橫行排列。在li上面還有鏈接a標(biāo)簽。
我們首先整理XHTML代碼:
Example Source Code
復(fù)制代碼
代碼如下:<ul id="mini_nav">
<li class="nav1"><a title="財(cái)經(jīng)">財(cái)經(jīng)</a></li>
<li class="nav2"><a title="商業(yè)">商業(yè)</a></li>
<li class="nav3"><a title="管理">管理</a></li>
<li class="nav4"><a title="領(lǐng)袖">領(lǐng)袖</a></li>
<li class="nav5"><a title="協(xié)會">協(xié)會</a></li>
<li class="nav6"><a title="博客">博客</a></li>
</ul>
我們著手寫CSS前,先結(jié)合上面的示意圖整理一下思路:
1、首先需要讓ul居中,然后讓nav成為ul的背景圖片。這樣就可以簡化編碼,不必給每一個(gè)li或a再定義不同的背景圖片及其定位。
2、定義列表項(xiàng)li的寬度與高度,并向左浮動(dòng)。實(shí)現(xiàn)列表項(xiàng)的橫向排列,組成一個(gè)橫向的菜單格局。
3、定義列表項(xiàng)內(nèi)部的鏈接a元素為塊元素。并給a:hover一個(gè)背景圖片,但不給他任何定位信息。
4、根據(jù)nav1~nav6分別定義a:hover狀態(tài)下,背景圖片的定位。
5、利用padding移除鏈接a元素的文字。使得在CSS有效時(shí)文字不可見,若出現(xiàn)CSS加載失敗或其它設(shè)備瀏覽時(shí),鏈接同樣有效。
我們開始著手CSS編寫:
Example Source Code
復(fù)制代碼
代碼如下:* {margin:0; padding:0; font-size:12; list-style-type:none; }
#mini_nav {width:390px; height:38px; margin:50px auto; background:url(nav.png) no-repeat 0 0;}
#mini_nav li {width:65px; height:38px; float:left;}
#mini_nav li a {display:block; width:65px; height:38px;}
#mini_nav li a:hover {background:url(nav.png) no-repeat;}
設(shè)置總體布局聲明,外邊距與內(nèi)邊距均為零,文字大小為12px,列表項(xiàng)預(yù)調(diào)標(biāo)記為無(去掉列表項(xiàng)前面的小黑點(diǎn))。
設(shè)置ID為mini_nav的UL寬度與高度,上下邊距為50px,左右邊距為auto,實(shí)現(xiàn)水平居中對齊。設(shè)計(jì)背景圖片為nav.png,定位于:0 0。
設(shè)置UL中的LI的樣式,寬度與高度,向左浮動(dòng)。
設(shè)置LI中鏈接A元素的樣式,首先將A元素轉(zhuǎn)換為塊元素,并設(shè)置其寬與高。
設(shè)置鏈接A元素的縣停樣式,定義背景圖片nav.png,重復(fù)方式為不重復(fù),不給出背景圖片的定位信息。
此時(shí)我們可以看到的頁面效果如下:
但這時(shí)候還不能實(shí)現(xiàn)任何懸停交互效果,而且鏈接文字而位于我們的神覺范圍內(nèi)。我們繼續(xù)編寫CSS代碼:
Example Source Code
復(fù)制代碼
代碼如下:#mini_nav li.nav1 a:hover {background-position:0 -38px;}
#mini_nav li.nav2 a:hover {background-position:-65px -38px;}
#mini_nav li.nav3 a:hover {background-position:-130px -38px;}
#mini_nav li.nav4 a:hover {background-position:-195px -38px;}
#mini_nav li.nav5 a:hover {background-position:-260px -38px;}
#mini_nav li.nav6 a:hover {background-position:-325px -38px;}
這一段很相類,我們給不同的鏈接(即nav1~nav6)設(shè)置了鼠標(biāo)懸停時(shí)的定位坐標(biāo)。
我們給前面的LI中鏈接A元素增加以下代碼:
Example Source Code [www.52css.com]
復(fù)制代碼
代碼如下:padding-top:40px; overflow:hidden;
上部的內(nèi)邊距為40px。溢出為隱藏。我們將鏈接文字增加上部的內(nèi)邊距,從而推到了下面,不可見的地方,為了使這樣的方法成功,我們必須設(shè)置溢出為隱藏。
相關(guān)文章
css背景圖片的背景裁切、背景透明度、背景變換等效果運(yùn)用
大家都知道,目前有很多瀏覽器無法實(shí)現(xiàn)背景裁切、背景透明度、背景變換和復(fù)雜背景定位等效果;那么這篇文章將詳細(xì)介紹了這幾種背景圖片的處理方法,需要了解的朋友可以參考下2012-12-24- IE6下CSS背景圖片閃爍的Bug(ie6下的背景圖片緩存問題)2011-07-27
鏈接偽類(:hover)CSS背景圖片有閃動(dòng)BUG的解決方法
IE6下鏈接偽類(:hover)CSS背景圖片有閃動(dòng)BUG,主要原因ie會再一次請求這張圖片,或者說圖片沒被緩存。2011-04-28網(wǎng)頁CSS背景圖片使用的測試結(jié)果-CSS教程-網(wǎng)頁制作-網(wǎng)頁教學(xué)網(wǎng)
這篇文章主要講了CSS對背景圖片渲染效率的一些經(jīng)驗(yàn)和研究,在webjx.com中,還有著類似CSS效率的相關(guān)文章。 樹型結(jié)構(gòu)豎線用樣式表(背景圖)來實(shí)現(xiàn),樣式表背景2008-10-17css利用一張背景圖制作導(dǎo)航菜單實(shí)現(xiàn)思路及代碼
利用一張背景圖片來實(shí)現(xiàn)菜單的懸停狀態(tài),沒有什么不可思議完全可以辦得到,僅這一張圖片,我們實(shí)現(xiàn)一個(gè)橫行CSS菜單。并設(shè)置它們的懸停效果,感興趣的朋友可以參考下哈,希2013-03-28純css實(shí)現(xiàn)的六邊形(蜂窩)導(dǎo)航效果(支持hover/兼容瀏覽器)
在之前的文章中曾經(jīng)寫到過一篇“三角形變形記之純css實(shí)現(xiàn)的分布導(dǎo)航條效果”,其中用到了邊框?qū)崿F(xiàn)三角形的效果。最近又折騰了一個(gè)六邊形的蜂窩效果給大家蹂躪。主要用到了2013-02-057款設(shè)計(jì)巧妙的css3飄帶狀3D立體效果的導(dǎo)航菜單和表單窗口
接下來向大家推薦7款設(shè)計(jì)巧妙的CSS3飄帶狀菜單和窗口,相當(dāng)不錯(cuò)的效果,很多都具有3D立體效果,看了相信你一定會喜歡的好了不多說,切入主題,希望本文可以幫助到你,提高2013-02-04不規(guī)則背景墻 CSS實(shí)現(xiàn)背景圖片不規(guī)則的導(dǎo)航菜單
一般情況下導(dǎo)航菜單的背景圖片都是比較有規(guī)則的,但是平時(shí)我們也會遇到很多背景圖片形狀不規(guī)則導(dǎo)航條比如但鼠標(biāo)移上的時(shí)候,背景圖片不規(guī)則,本例只討論此種類型2013-01-02CSS3等相關(guān)屬性制作分頁導(dǎo)航實(shí)現(xiàn)代碼
W3cplus第二版本剛上線時(shí),好多位朋友向我問起站上的分頁導(dǎo)航樣式是怎么制作;為了報(bào)答各位朋友一持對本站的大力支持,今天我特意把這個(gè)分頁導(dǎo)航的效果當(dāng)作一個(gè)小教程來說。2012-12-24- 不改變html結(jié)構(gòu),使導(dǎo)航菜單垂直水平居中這個(gè)問題應(yīng)該如何解決呢?本文將詳細(xì)介紹,需要了解的朋友可以參考下2012-11-30

