真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CSS多級菜單的實現(xiàn)方法

小編給大家分享一下CSS多級菜單的實現(xiàn)方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

企業(yè)建站必須是能夠以充分展現(xiàn)企業(yè)形象為主要目的,是企業(yè)文化與產(chǎn)品對外擴展宣傳的重要窗口,一個合格的網(wǎng)站不僅僅能為公司帶來巨大的互聯(lián)網(wǎng)上的收集和信息發(fā)布平臺,創(chuàng)新互聯(lián)建站面向各種領域:工商代辦成都網(wǎng)站設計、全網(wǎng)整合營銷推廣解決方案、網(wǎng)站設計等建站排名服務。


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

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

* {
  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元素的范圍內(nèi),如果包含塊是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現(xiàn)在在IE6無法切換(img元素除外)。解決方法用visibility 代替display。

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

我們在各游覽器看一下,感覺非常乏力。IE6與Opera10的二級菜單項是垂直的,但我們并沒有清除浮動???firefox3.5與chrome與safari4的二級菜單項是水平分布了,但上面好像多出一個菜單項……IE8同學這次反而是表現(xiàn)得最好的。我沒有裝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;發(fā)現(xiàn)放在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;
}

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

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

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

以上是“CSS多級菜單的實現(xiàn)方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


當前文章:CSS多級菜單的實現(xiàn)方法
網(wǎng)頁路徑:http://weahome.cn/article/gjsjis.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部