最優(yōu)良人 » 下拉 http://www.dgkai.cn/blog 中山php|最優(yōu)網(wǎng)絡 Mon, 13 May 2013 04:56:43 +0000 en hourly 1 http://wordpress.org/?v=3.1.4 純css實現(xiàn)下拉菜單,兼容ie6 http://www.dgkai.cn/blog/view-319.html http://www.dgkai.cn/blog/view-319.html#comments Mon, 26 Dec 2011 05:52:05 +0000 lin http://www.dgkai.cn/blog/?p=319 以下代碼在ie6以上版本以及其他標準瀏覽器下,都可以實現(xiàn)純css的下拉菜單效果,原理是通過li:hover控制菜單的顯示隱藏。

<ul id="nav">
<li><a href="#">這是顯示的標題1</a>
<ul>
<li><a href="#">這是列表中的內(nèi)容1</a></li>
<li><a href="#">這是列表中的內(nèi)容2</a></li>
<li><a href="#">這是列表中的內(nèi)容3</a></li>
<li><a href="#">這是列表中的內(nèi)容4</a></li>
</ul>
</li>
<li><a href="#">這是顯示的標題2</a>
<ul>
<li><a href="#">這是列表中的內(nèi)容5</a></li>
<li><a href="#">這是列表中的內(nèi)容6</a></li>
<li><a href="#">這是列表中的內(nèi)容7</a></li>
<li><a href="#">這是列表中的內(nèi)容8</a></li>
</ul>
</li>
</ul>

CSS樣式代碼

#nav, #nav ul{ /* all lists */
padding: 0;
margin: 0;
list-style: none;
line-height: 1;
}
#nav li{ /* all list items */
float: left;
width: 10em;
}
#nav li ul{ /* second-level lists */
position: absolute;
background: orange;
width: 10em;
left: -999em; /* using left instead of display to hide menus because display: none isn't read by screen readers 這里用left:-999em的也行,用display:none的也行,看您喜歡用啥 */
}

*+ html #nav li ul{margin: 16px 0 0 -95px;} /* 二級菜單顯示位置調(diào)整IE7 */
*html #nav li ul{margin: 16px 0 0 -95px;} /* 二級菜單顯示位置調(diào)整 IE6 */
#nav li:hover ul, #nav li.sfhover ul{
left: auto;/* 如果上面用left的了,那么這就不用改,最多改個數(shù),如果用display:none了,那么這里改成display:block*/
}

由于ie6不支持li:hover ,所以#nav li:hover ul,失效,必須使用js控制樣式sfhover,需要在頭部添加以下js代碼:

<script type="text/javascript"><!--//--><![CDATA[//><!--
sfHover =function() {
var sfEls = document.getElementById("nav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);
//--><!]]>
</script>

 

]]>
http://www.dgkai.cn/blog/view-319.html/feed 449