xhtml結(jié)構(gòu)部分內(nèi)容:
<ul> <li><a href="#" title="菜單">菜單</a></li> <li><a href="#" title="菜單">菜單</a></li> <li><a href="#" title="菜單">菜單</a></li> </ul>
css部分內(nèi)容:
* {margin:0;padding:0;font:normal 12px/25px "宋體";} body {background:#f8f8f8;} ul {list-style:none;width:300px;height:25px;margin:20px auto;} li {float:left;width:86px;height:25px;text-align:center;margin:0 -5px;display:inline;} a {color:#fff; float:left;width:86px;height:25px;top:0;left:0;background:url(http://www.linxz.cn/blog2/attachments/month_0804/d200843194011.gif) center center no-repeat;} a:hover {color:#000;background:url(http://www.linxz.cn/blog2/attachments/month_0804/s200843194022.gif) 0 0 no-repeat;width:86px;position:relative;}
思路:
主要是利用當:hover觸發(fā)的時候讓a定位,出了li的浮動范圍,出現(xiàn)梯形的圖片。從而實現(xiàn)了不規(guī)則導航的菜單。
過程:
1、在瀏覽器中,根據(jù)li的結(jié)構(gòu)表現(xiàn),后面的li會覆蓋住前面的li,如果寬度足夠的話,是靠邊在一起,那么只要利用負邊距就可以實現(xiàn)初始狀態(tài)下相互疊加的樣式。margin:0 -5px ; 2、初始狀態(tài)下的疊加實現(xiàn)了,要解決的就是:hover觸發(fā)的時候,讓 <a href="#" title="菜單">菜單</a> 這個放棄浮動使用定位。在這個過程中如果是要利用絕對定位話,會讓有一個 z-index 的問題出現(xiàn)。 這個問題只體現(xiàn)在IE中,F(xiàn)F下是無問題的,可以正常顯示。IE中表現(xiàn)出來的是最后一個li永遠都會蓋住前面的li,那么當鼠標經(jīng)過的時候就無法完美顯示了。
個人認為比較重要的幾個屬性:
- li中的負邊距,實現(xiàn)疊加效果
- hover中的position:relative
- a是內(nèi)聯(lián)元素,要觸發(fā)haslayout,可以使用float:left來觸發(fā)
注:
以上內(nèi)容或許講得不是非常明白,不過大家可以仔細分析一下源碼,然后交流一下。如果覺得好也請不要回帖說頂,收藏,謝謝之類的話,你們的點擊就是對我的支持了。
經(jīng)典論壇交流: http://bbs.blueidea.com/thread-2843421-1-1.html
本文鏈接:http://m.95time.cn/tech/web/2008/5627.asp
出處:藍色理想
責任編輯:bluehearts
上一頁 xhtml+css制作不規(guī)則導航 [1] 下一頁
◎進入論壇網(wǎng)頁制作、WEB標準化版塊參加討論,我還想發(fā)表評論。
|