CSS DIV制作梯形狀的不規(guī)則網(wǎng)站導航
互聯(lián)網(wǎng) 發(fā)布時間:2008-10-17 19:16:33 作者:佚名
我要評論

前段時間做一個小項目碰到了一個導航制作的方式然后突然想到曾經(jīng)很久以前看到的梯形狀的不規(guī)則導航,就嘗試做了一下。結果碰到了幾個問題,后來在同事的提醒下總算完成了,記錄一下也跟大家分享分享。
先看圖(圖片只是大致做了一下)
效果展示:
運行代
xhtml結構部分內容:
<ul>
<li><a href="#" title="菜單">菜單</a></li>
<li><a href="#" title="菜單">菜單</a></li>
<li><a href="#" title="菜單">菜單</a></li>
</ul>
css部分內容:
* {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的結構表現(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是內聯(lián)元素,要觸發(fā)haslayout,可以使用float:left來觸發(fā)
注:
以上內容或許講得不是非常明白,不過大家可以仔細分析一下源碼,然后交流一下。如果覺得好也請不要回帖說頂,收藏,謝謝之類的話,你們的點擊就是對我的支持了。
相關文章
- 在web設計中,梯形標簽頁是很常見的一種形式,但是梯形又是一種很難實現(xiàn)的樣式,下面小編給大家分享使用CSS實現(xiàn)梯形標簽頁的代碼,需要的朋友參考下吧2017-09-07