CSS橫向下拉菜單(兼容IE6)
發(fā)布時間:2013-10-18 16:20:55 作者:佚名
我要評論
大多數(shù)人會選擇用JavaScript去實現(xiàn)下拉菜單,但其實CSS也可以做到的哦,下面為大家介紹下CSS驅(qū)動的橫向下拉菜單,感興趣的朋友不要錯過
CSS驅(qū)動的橫向下拉菜單(改進版)
由于我的IE是IE7的,所以起初沒有意識到那個下拉菜單在IE6中不能顯示,今天剛把IE7卸了裝了IE6,一般的,由于CSS驅(qū)動的下拉菜單不能在IE6中正常工作,大多數(shù)人會選擇用JavaScript去實現(xiàn)下拉菜單,但其實CSS也可以做到的哦~~
這個關(guān)鍵就是這個語句:body { behavior:url(csshover.htc);}。通過IE特有的屬性behavior調(diào)用一個行為文件,為IE添加一些通常沒有的功能。即只有IE才去下載它,其他瀏覽器不會浪費帶寬去下載它,其缺點是:behavior聲明無法通過樣式表的驗證??梢詫⒅D(zhuǎn)移到一個單獨的樣式表文件,然后用@import引用它。讓主要的樣式表通過驗證。
下面看一下CSS的源碼,注釋中有給出csshover.htc文件的作用。(我有修改多處源碼,發(fā)現(xiàn)上次寫的有很多不足~~)對了,這個csshover.htc文件可以在http://www.xs4all.nl/~peterned/csshover.html#changes上下載得到。(是英文網(wǎng)站哈,不過單擊橙色的download連接就可以下載了,只是有不同的版本,我這里用的是“Version 1.42.060206 (:hover and :active) download | view”這個連接的版本。)不廢話了,還是看源碼吧~~
BODY部分
<ul id="nav2">
<li><a href="">文章</a>
<ul>
<li><a href="">CSS教程</a></li>
<li><a href="">DOM教程</a></li>
<li><a href="">XML教程</a></li>
<li><a href="">FLASH教程</a></li>
</ul>
</li>
<li><a href="">交流</a>
<ul>
<li><a href="">CSS應用</a></li>
<li><a href="">XML應用</a></li>
<li><a href="">FLASHAS編程</a></li>
<li><a href="">DW網(wǎng)頁制作</a></li>
</ul>
</li>
<li><a href="">博客</a>
<ul>
<li><a href="">全部</a></li>
<li><a href="">網(wǎng)頁特效</a></li>
<li><a href="">高級編程</a></li>
<li><a href="">FLASH動畫</a></li>
</ul>
</li>
</ul>
CSS部分
/* CSS驅(qū)動的橫向下拉菜單 */
body {
behavior:url(csshover.htc);
}
ul#nav2 {
padding:0px;
margin:0px;
}
/*注意:列表<ul>不可以是列表的子結(jié)點,但可以是列表項<li>的子結(jié)點*/
ul#nav2 li {
float:left;
width:160px;
list-style:none;
}/*列表項水平浮動,使形成橫向的一級菜單*/
ul#nav2 li ul { /*設(shè)置下拉菜單不可見,只有當鼠標經(jīng)過使才可見*/
display:none;
margin:0;
padding:0;/*去除所以的縮進(不同瀏覽器對列表的內(nèi)外邊距默認設(shè)置不一樣,在這里設(shè)置使消除不同瀏覽器間的不同效果)*/
}
ul#nav2 li:hover ul{
display:block;
}
ul#nav2 li li:hover {
background-color:#f4f4f4;
}
/*CSS中允許將懸停樣式用在所有元素中,而IE只運行應用在連接上,
但是,csshover.htc文件的唯一作用就是給IE增加了任意元素的懸停功能。*/
ul#nav2 li a{
display:block;
border:1px solid #c5c6c4;
text-decoration:none;
color:#000;
}
ul#nav2 li li a { /*對下拉菜單中的項進行修飾*/
display:block;
font-size:12px;
border:1px solid #ccc;
padding:3px;
text-decoration:none;
color:#777;
width:152px;/*使所有列表項寬度統(tǒng)一,160-3*2-1*2=152px*/
}
/*IE中display:block不足以使連接a的可單擊區(qū)域填充整個列表項,但如果給連接設(shè)置一個明確的寬度,就可以得到想要的行為。對于其他的瀏覽器,只需要將width重新跳回auto讓瀏覽器自己自己調(diào)整就可以即可。*/
ul#nav2>li li a {
width:auto;
}
/*子選擇器>對IE6以下不可見,所以IE6不會去執(zhí)行它*/
OK~~,到這里不同瀏覽器的CSS驅(qū)動的下拉菜單就告一段落了,不過,可能有的朋友會想讓子菜單放在其他的位置,而不是默認的一級菜單的正下方,也好辦:
1.在ul#nav2 li選擇器中添加position:relative;
2.在ul#nav2 li ul 選擇器中添加position:absolute;
3.這樣就將一級菜單的各列表項(已相對定位)為任何絕度定位的子孫元素建立了一個容器塊,即絕對定位了的子菜單將以它為定位的起始點,通過添加top,left屬性定位調(diào)整與一級菜單的關(guān)系來調(diào)整自己的位置(即距離容器塊左上角的位置偏移量)。
由于我的IE是IE7的,所以起初沒有意識到那個下拉菜單在IE6中不能顯示,今天剛把IE7卸了裝了IE6,一般的,由于CSS驅(qū)動的下拉菜單不能在IE6中正常工作,大多數(shù)人會選擇用JavaScript去實現(xiàn)下拉菜單,但其實CSS也可以做到的哦~~
這個關(guān)鍵就是這個語句:body { behavior:url(csshover.htc);}。通過IE特有的屬性behavior調(diào)用一個行為文件,為IE添加一些通常沒有的功能。即只有IE才去下載它,其他瀏覽器不會浪費帶寬去下載它,其缺點是:behavior聲明無法通過樣式表的驗證??梢詫⒅D(zhuǎn)移到一個單獨的樣式表文件,然后用@import引用它。讓主要的樣式表通過驗證。
下面看一下CSS的源碼,注釋中有給出csshover.htc文件的作用。(我有修改多處源碼,發(fā)現(xiàn)上次寫的有很多不足~~)對了,這個csshover.htc文件可以在http://www.xs4all.nl/~peterned/csshover.html#changes上下載得到。(是英文網(wǎng)站哈,不過單擊橙色的download連接就可以下載了,只是有不同的版本,我這里用的是“Version 1.42.060206 (:hover and :active) download | view”這個連接的版本。)不廢話了,還是看源碼吧~~
BODY部分
復制代碼
代碼如下:<ul id="nav2">
<li><a href="">文章</a>
<ul>
<li><a href="">CSS教程</a></li>
<li><a href="">DOM教程</a></li>
<li><a href="">XML教程</a></li>
<li><a href="">FLASH教程</a></li>
</ul>
</li>
<li><a href="">交流</a>
<ul>
<li><a href="">CSS應用</a></li>
<li><a href="">XML應用</a></li>
<li><a href="">FLASHAS編程</a></li>
<li><a href="">DW網(wǎng)頁制作</a></li>
</ul>
</li>
<li><a href="">博客</a>
<ul>
<li><a href="">全部</a></li>
<li><a href="">網(wǎng)頁特效</a></li>
<li><a href="">高級編程</a></li>
<li><a href="">FLASH動畫</a></li>
</ul>
</li>
</ul>
CSS部分
復制代碼
代碼如下:/* CSS驅(qū)動的橫向下拉菜單 */
body {
behavior:url(csshover.htc);
}
ul#nav2 {
padding:0px;
margin:0px;
}
/*注意:列表<ul>不可以是列表的子結(jié)點,但可以是列表項<li>的子結(jié)點*/
ul#nav2 li {
float:left;
width:160px;
list-style:none;
}/*列表項水平浮動,使形成橫向的一級菜單*/
ul#nav2 li ul { /*設(shè)置下拉菜單不可見,只有當鼠標經(jīng)過使才可見*/
display:none;
margin:0;
padding:0;/*去除所以的縮進(不同瀏覽器對列表的內(nèi)外邊距默認設(shè)置不一樣,在這里設(shè)置使消除不同瀏覽器間的不同效果)*/
}
ul#nav2 li:hover ul{
display:block;
}
ul#nav2 li li:hover {
background-color:#f4f4f4;
}
/*CSS中允許將懸停樣式用在所有元素中,而IE只運行應用在連接上,
但是,csshover.htc文件的唯一作用就是給IE增加了任意元素的懸停功能。*/
ul#nav2 li a{
display:block;
border:1px solid #c5c6c4;
text-decoration:none;
color:#000;
}
ul#nav2 li li a { /*對下拉菜單中的項進行修飾*/
display:block;
font-size:12px;
border:1px solid #ccc;
padding:3px;
text-decoration:none;
color:#777;
width:152px;/*使所有列表項寬度統(tǒng)一,160-3*2-1*2=152px*/
}
/*IE中display:block不足以使連接a的可單擊區(qū)域填充整個列表項,但如果給連接設(shè)置一個明確的寬度,就可以得到想要的行為。對于其他的瀏覽器,只需要將width重新跳回auto讓瀏覽器自己自己調(diào)整就可以即可。*/
ul#nav2>li li a {
width:auto;
}
/*子選擇器>對IE6以下不可見,所以IE6不會去執(zhí)行它*/
OK~~,到這里不同瀏覽器的CSS驅(qū)動的下拉菜單就告一段落了,不過,可能有的朋友會想讓子菜單放在其他的位置,而不是默認的一級菜單的正下方,也好辦:
1.在ul#nav2 li選擇器中添加position:relative;
2.在ul#nav2 li ul 選擇器中添加position:absolute;
3.這樣就將一級菜單的各列表項(已相對定位)為任何絕度定位的子孫元素建立了一個容器塊,即絕對定位了的子菜單將以它為定位的起始點,通過添加top,left屬性定位調(diào)整與一級菜單的關(guān)系來調(diào)整自己的位置(即距離容器塊左上角的位置偏移量)。
相關(guān)文章

CSS3打造的現(xiàn)代交互式登錄界面詳細實現(xiàn)過程
本文介紹CSS3和jQuery在登錄界面設(shè)計中的應用,涵蓋動畫、選擇器、自定義字體及盒模型技術(shù),提升界面美觀與交互性,同時優(yōu)化性能和可訪問性,感興趣的朋友跟隨小編一起看看吧2025-06-20CSS普通流、浮動與定位網(wǎng)頁布局三大機制及最佳實踐
本文給大家講解CSS 的三種核心布局機制——普通流(Normal Flow)、浮動(Float)和定位(Positioning)對于創(chuàng)建靈活、響應式的網(wǎng)頁至關(guān)重要,本文將深入探討這三種機制的工作原2025-06-19
css實現(xiàn)角標效果并帶有文章或圖標效果(完整代碼)
文章介紹如何用CSS實現(xiàn)角標效果,通過.active類結(jié)合::after和::before偽元素,利用定位、邊框和旋轉(zhuǎn)創(chuàng)建紅色邊框與白色三角形的提示標志,適用于按鈕或卡片元素的視覺增強設(shè)計2025-06-19CSS Anchor Positioning重新定義錨點定位的時代來臨(最新推薦)
CSS Anchor Positioning是一項仍在草案中的新特性,由 Chrome 125 開始提供原生支持需啟用實驗 flag,它允許你在 CSS 中通過錨點(anchor)來相對于任意 DOM 元素定位,本文2025-06-17CSS中的Static、Relative、Absolute、Fixed、Sticky的應用與詳細對比
CSS 中的 position 屬性用于控制元素的定位方式,不同的定位方式會影響元素在頁面中的布局和層疊關(guān)系,以下是 static、relative、absolute、fixed、sticky 的詳細對比和應用2025-06-17CSS place-items: center解析與用法詳解
place-items: center; 是一個強大的 CSS 簡寫屬性,用于同時控制 網(wǎng)格(Grid) 和 彈性盒(Flexbox) 布局中的對齊方式,本文給大家介紹CSS place-items: center; 詳解與用法2025-06-17
在日常開發(fā)中,我們經(jīng)常需要讓某個元素占據(jù)容器的剩余空間,本文將介紹5種不同的方法來實現(xiàn)這個需求,并分析各種方法的優(yōu)缺點,感興趣的朋友一起看看吧2025-06-17CSS中前端單位 px、vw、vh 等的區(qū)別與使用建議
CSS單位區(qū)別與使用場景總結(jié):px絕對、vw/vh響應式,%繼承父尺寸,em/rem文字縮放,vmin/vmax適應寬高變化,固定布局用px或%,響應式布局用vw/vh/rem,文字用em或rem,本文給大家2025-06-16CSS 樣式表的四種應用方式及css注釋的應用小結(jié)
這篇文章主要介紹了CSS 樣式表的四種應用方式及css注釋的應用小結(jié),本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2025-05-21- 在CSS布局中,padding屬性是控制元素內(nèi)容與其邊框之間距離的關(guān)鍵工具,本文介紹CSS基礎(chǔ)中padding,通過本文的介紹,我們深入了解了padding的基本概念、簡寫方法以及它對元2025-05-16




