亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > CSS > 正文

CSS多級菜單的實現代碼

2024-07-11 08:59:37
字體:
來源:轉載
供稿:網友

這是一個相當炫的功能,讓網頁看起來像桌面程序,如window的開始菜單。實現原理基本和純CSS相冊差不多,但要注意的事項比較多,讓我們一步步來吧。

先來一個非常簡單的一級菜單與懸停效果。

<ul id="menu">  <li>    <a href="//www.49028c.com/rubylouvre/">      菜單一<!--小圖--><span><!--大圖--></span>    </a>  </li>  <li>    <a href="//www.49028c.com/rubylouvre/">      菜單二<!--小圖--><span><!--大圖--></span>    </a>  </li>  <li>    <a href="//www.49028c.com/rubylouvre/">      菜單三<!--小圖--><span><!--大圖--></span>    </a>  </li>  <li class="last">    <a href="//www.49028c.com/rubylouvre/">      菜單四<!--小圖--><span><!--大圖--></span>    </a>  </li></ul>

結構很熟悉吧,就是把原來放圖片的地方換成文字而已。我還特意標出來了。接著下來的表現層代碼非常簡單。

* {  margin:0;  padding:0;}.menu {  font-size:12px;}.menu li {/*水平菜單*/  float:left;  list-style:none;}.menu a {  display:block;  position:relative;  height:32px;  width:100px;  line-height:32px;  background:#a9ea00;  color:#ff8040;  text-decoration:none;  text-align:center;}.menu a:hover {  background:#369;  color:#fff;}.menu li span {  display:none;  position:absolute;  left:0;  top:32px;  width:200px;  height:150px;  background:#B9D6FF;}.menu a:hover span {  display:block;}

這里有兩個值得注意的地方。我們先說第一個。子菜單(span元素)的top應該能使其頂部停留在a元素的范圍內,如果包含塊是li元素,同理。當span的top值大于32px,如40px,我們就無法把鼠標移到span元素上。因為離開了a:hover的作用范圍,span元素又重新隱藏。

.menu li span {  display:none;  position:absolute;  left:0;  top:40px;/*★★修改這里★★*/  width:200px;  height:150px;  background:#B9D6FF;}

第二個問題是IE6特有的,就是子菜單在對應的包含塊mouseout后仍不消失的問題。hover偽類相當于moverover與moverout。我們在可以在mouseover給它的子孫元素認定一種樣式,mouseout時認定另一種。換言之,display現在在IE6無法切換(img元素除外)。解決方法用visibility 代替display。

好了,現在我們真正做二級菜單,把有關span的CSS全刪掉,并在結構層原span的位置改為如下代碼:

<ul>  <li><a href="//www.49028c.com/rubylouvre/">二級菜單_11</a></li>  <li><a href="//www.49028c.com/rubylouvre/">二級菜單_12</a></li></ul>

我們在各游覽器看一下,感覺非常乏力。IE6與Opera10的二級菜單項是垂直的,但我們并沒有清除浮動???firefox3.5與chrome與safari4的二級菜單項是水平分布了,但上面好像多出一個菜單項……IE8同學這次反而是表現得最好的。我沒有裝IE7,所以一向忽略它。

我們重新設置一下樣式,如把包含塊改設在li元素上,讓二級菜單項呈垂直顯示。

* {  margin:0;  padding:0;}.menu {  font-size:12px;}.menu li {/*水平菜單*/  float:left;  list-style:none;  position:relative;/*把包含塊移動li元素*/}.menu a {  display:block;  /*position:relative;發現放在a元素中,  在標準游覽器中慘不忍睹,  和純CSS相冊3的第一個運行框在chrome中遇到的bug一樣*/  height:32px;  width:100px;  line-height:32px;  background:#a9ea00;  color:#ff8040;  text-decoration:none;  text-align:center;}.menu a:hover {  background:#369;  color:#fff;}/*新增的二級菜單部分*/.menu ul ul {  visibility:hidden;/*開始時是隱藏的*/  position:absolute;  left:0px;  top:32px;}.menu ul a:hover ul{  visibility:visible;}.menu ul ul li {  clear:both;/*垂直顯示*/  text-align:left;}

發現二級菜單在firefox與safari與chrome中沒有反應,彈不出來(這三個瀏覽器的CSS部分互相抄襲嚴重?。?。opera10表現得最好,IE8其次。不過,標準瀏覽器的所有元素都支持hover偽類,不像IE6,非帶href的a元素不可。我們改寫部分CSS代碼:

.menu ul li:hover ul,/*非IE6*/.menu ul a:hover ul{/*IE6*/  visibility:visible;}

二級菜單能彈出來了,但那個神秘的li元素也現形了。我用雙重浮動的收縮包圍(shrink-wrapping)現象都無法消除這個神秘的li元素。參考外國的代碼,方法是,把整個子菜單放到a元素的外面,然后用li:hover控制樣式的切換。于是結構層改寫如下:

<div class="menu">  <ul>    <li>      <a href="//www.49028c.com/rubylouvre/">菜單一 </a>      <ul>        <li><a href="//www.49028c.com/rubylouvre/">二級菜單_11</a></li>        <li><a href="//www.49028c.com/rubylouvre/">二級菜單_12</a></li>      </ul>    </li>    <li>      <a href="//www.49028c.com/rubylouvre/">菜單二</a>      <ul>        <li><a href="//www.49028c.com/rubylouvre/">二級菜單_21</a></li>        <li><a href="//www.49028c.com/rubylouvre/">二級菜單_22</a></li>      </ul>    </li>    <li>    //***************略************    </li>    <li>    //***************略************    </li>  </ul></div>

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品久久久av| 北条麻妃99精品青青久久| 久久精品久久久久久| 久久久噜噜噜久久中文字免| 亚洲免费视频观看| 亚洲国产古装精品网站| 成人精品在线视频| 欧美国产第二页| 亚洲成人黄色在线| 在线播放日韩av| 亚洲欧美另类中文字幕| 国产中文日韩欧美| 欧美人与性动交a欧美精品| 成人黄色av网站| 国产激情999| 精品少妇一区二区30p| 精品一区二区三区三区| 国产精品高精视频免费| 国产va免费精品高清在线| 日韩精品久久久久久久玫瑰园| 欧美高清视频在线观看| 日韩av电影手机在线观看| 日韩成人中文电影| 日韩中文字幕网| 亚洲一区二区三区777| 97视频国产在线| 91精品久久久久久久久青青| 国产精品www色诱视频| 国产精品一区二区三区在线播放| 精品欧美国产一区二区三区| 亚洲三级 欧美三级| 久久这里只有精品视频首页| 国产欧美日韩高清| 久久综合网hezyo| 亚洲激情小视频| 97视频在线观看视频免费视频| 成人性生交大片免费观看嘿嘿视频| 亚洲成av人乱码色午夜| 午夜精品久久久99热福利| 色综久久综合桃花网| 色妞在线综合亚洲欧美| 欧美激情视频网| 免费99精品国产自在在线| 91精品视频观看| 久久精品视频va| 久久久免费高清电视剧观看| 国产亚洲一区精品| 人体精品一二三区| 色妞一区二区三区| 97在线观看视频| 69久久夜色精品国产7777| 欧美性生活大片免费观看网址| 日日噜噜噜夜夜爽亚洲精品| 亚洲福利视频久久| 九九热精品视频在线播放| 全球成人中文在线| 成人网在线观看| 欧美一区二区三区精品电影| 欧美黑人xxx| 国产欧美日韩专区发布| 国产精品激情av在线播放| 亚洲福利视频免费观看| 欧美激情综合亚洲一二区| 日韩av第一页| 亚洲在线一区二区| 亚洲欧洲在线免费| 国产精品欧美久久久| 狠狠躁夜夜躁久久躁别揉| 日本欧美爱爱爱| 欧美视频国产精品| 国产91在线高潮白浆在线观看| 国产精品黄色影片导航在线观看| 亚洲欧洲中文天堂| 亚洲国产私拍精品国模在线观看| 亚洲视频在线观看| 亚洲最大福利视频| 国产精品中文在线| 亚洲色图av在线| 欧美激情免费在线| 欧美亚洲在线播放| 亚洲精品中文字幕女同| 亚洲久久久久久久久久久| 亚洲免费视频在线观看| 亚洲欧美另类自拍| 亚洲一区二区久久久久久久| 国语自产精品视频在线看抢先版图片| 亚洲人成电影网站色www| 中文字幕日韩专区| 懂色aⅴ精品一区二区三区蜜月| 国产在线播放91| 亚洲人成自拍网站| 亚洲aⅴ男人的天堂在线观看| 日韩电影中文字幕在线| 91久久在线视频| 91网站免费观看| 北条麻妃一区二区在线观看| 国产视频观看一区| 中文字幕在线观看日韩| 亚洲人成77777在线观看网| 亚洲天堂男人的天堂| 国产精品久久久一区| 大伊人狠狠躁夜夜躁av一区| 国产精品狼人色视频一区| 欧美久久久精品| 亚洲人av在线影院| 18性欧美xxxⅹ性满足| 久久久久久一区二区三区| 91香蕉国产在线观看| 欧美夫妻性生活视频| 精品色蜜蜜精品视频在线观看| 日韩精品欧美国产精品忘忧草| 国产精品免费福利| 亚洲人成77777在线观看网| 亚洲一区二区三区777| 日本欧美一级片| 久久久精品美女| 成人国产精品av| 欧美大码xxxx| 国产精品高清在线观看| 国产97色在线| 亚洲午夜av电影| 国产999精品视频| 欧美成人精品在线| 久久免费成人精品视频| 日韩中文字幕在线播放| 538国产精品视频一区二区| 亚洲电影在线看| 欧美日韩中文在线| 一区二区三区日韩在线| 一区二区三区视频观看| 国产成人av网址| 欧美亚洲成人网| 正在播放亚洲1区| 欧美极品少妇xxxxⅹ喷水| 久久久久久久一| 久久777国产线看观看精品| 亚洲91精品在线| 午夜精品免费视频| 日韩激情视频在线播放| 精品中文字幕在线| 久久激情视频免费观看| 欧美精品久久一区二区| 91香蕉嫩草神马影院在线观看| 免费99精品国产自在在线| 欧美性猛交xxxx富婆| 国产丝袜高跟一区| 色老头一区二区三区在线观看| 欧美日韩亚洲激情| 成人免费视频网址| 国产一区二区视频在线观看| 国内精品久久久久久久| 国产午夜精品视频| 国产第一区电影| 国产一区二中文字幕在线看| 日韩在线观看免费网站| 欧美丰满少妇xxxxx| 中文字幕久热精品在线视频| 国产日韩在线看片| 国产欧美精品xxxx另类| 亚洲精品视频免费在线观看| 欧洲午夜精品久久久| 91精品国产成人| 欧美日韩午夜视频在线观看| 国产男女猛烈无遮挡91|