使用CSS 制作导航菜单

 

方式一:直接编写代码实现 

代码如下:

<html>
<head>
<title>无需表格的菜单</title>
<style>
<!--
body{
    background-color:#ffdee0;
}
#navigation {
    width:200px;
    font-family:Arial;
}
#navigation ul {
    list-style-type:none;                /* 不显示项目符号 */
    margin:0px;
    padding:0px;
}
#navigation li {
    border-bottom:1px solid #ED9F9F;    /* 添加下划线 */
}
#navigation li a{
    display:block;                        /* 区块显示 */
    padding:5px 5px 5px 0.5em;
    text-decoration:none;
    border-left:12px solid #711515;        /* 左边的粗红边 */
    border-right:1px solid #711515;        /* 右侧阴影 */
    width:175px;     /* xg_超连接以外的部分也触发CSS样式效果 */
}
#navigation li a:link, #navigation li a:visited{
    background-color:#c11136;
    color:#FFFFFF;
}
#navigation li a:hover{                    /* 鼠标经过时 */
    background-color:#990020;            /* 改变背景色 */
    color:#ffff00;                        /* 改变文字颜色 */
}
-->
</style>
</head>
<body>
<div id="navigation">
    <ul>
        <li><a href="#">Home</a></li>
        <li><a href="#">News</a></li>
        <li><a href="#">Sports</a></li>
        <li><a href="#">Weather</a></li>
        <li><a href="#">Contact Me</a></li>
    </ul>
</div>
</body>
</html>

 

效果如下:

 

 

方式二:使用jQuery 代码实现 

代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>伸缩的菜单,用toggle()重写</title>
<style>
<!--
body{
    background-color:#ffdee0;
}
#navigation {
    width:200px;
    font-family:Arial;
}
#navigation > ul {
    list-style-type:none;                /* 不显示项目符号 */
    margin:0px;
    padding:0px;
}
#navigation > ul > li {
    border-bottom:1px solid #ED9F9F;    /* 添加下划线 */
}
#navigation > ul > li > a{
    display:block;                        /* 区块显示 */
    padding:5px 5px 5px 0.5em;
    text-decoration:none;
    border-left:12px solid #711515;        /* 左边的粗红边 */
    border-right:1px solid #711515;        /* 右侧阴影 */
}
#navigation > ul > li > a:link, #navigation > ul > li > a:visited{
    background-color:#c11136;
    color:#FFFFFF;
}
#navigation > ul > li > a:hover{        /* 鼠标经过时 */
    background-color:#990020;            /* 改变背景色 */
    color:#ffff00;                        /* 改变文字颜色 */
}
 
/* 子菜单的CSS样式 */
#navigation ul li ul{
    list-style-type:none;
    margin:0px;
    padding:0px 0px 0px 0px;
}
#navigation ul li ul li{
    border-top:1px solid #ED9F9F;
}
#navigation ul li ul li a{
    display:block;
    padding:3px 3px 3px 0.5em;
    text-decoration:none;
    border-left:28px solid #a71f1f;
    border-right:1px solid #711515;
}
#navigation ul li ul li a:link, #navigation ul li ul li a:visited{
    background-color:#e85070;
    color:#FFFFFF;
}
#navigation ul li ul li a:hover{
    background-color:#c2425d;
    color:#ffff00;
}
-->
</style>
<script language="javascript" src="jquery.min.js"></script>
<script language="javascript">
$(function(){
    $("li").find("ul").prev().click(function(){
        $(this).next().toggle();
    });
    $("li:has(ul)").find("ul").hide();
});
</script>
</head>
<body>
<div id="navigation">
    <ul id="listUL">
        <li><a href="#">Home</a></li>
        <li><a href="#">News</a>
            <ul>
                <li><a href="#">Lastest News</a></li>
                <li><a href="#">All News</a></li>
            </ul>
        </li>
        <li><a href="#">Sports</a>
            <ul>
                <li><a href="#">Basketball</a></li>
                <li><a href="#">Football</a></li>
                <li><a href="#">Volleyball</a></li>
            </ul>        
        </li>
        <li><a href="#">Weather</a>
            <ul>
                <li><a href="#">Today's Weather</a></li>
                <li><a href="#">Forecast</a></li>
            </ul>
        </li>
        <li><a href="#">Contact Me</a></li>
    </ul>
</div>
</body>
</html>

注意:该代码必须加载了jquery.min.js 文件,并且所写的CSS 只能在Firefox 浏览器中正常显示。

 

方式三:实现伸缩的两级菜单

代码如下:

ExpandedBlockStart.gif 6-14.html
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" >
< html >
< head >
< title > 伸缩的菜单 </ title >
< style >
<!--
body {
    background-color : #ffdee0 ;
}
#navigation  {
    width : 200px ;
    font-family : Arial ;
}
#navigation > ul  {
    list-style-type : none ;                  /*  不显示项目符号  */
    margin : 0px ;
    padding : 0px ;
}
#navigation > ul > li  {
    border-bottom : 1px solid #ED9F9F ;      /*  添加下划线  */
}
#navigation > ul > li > a {
    display : block ;                          /*  区块显示  */
    padding : 5px 5px 5px 0.5em ;
    text-decoration : none ;
    border-left : 12px solid #711515 ;          /*  左边的粗红边  */
    border-right : 1px solid #711515 ;          /*  右侧阴影  */
}
#navigation > ul > li > a:link, #navigation > ul > li > a:visited {
    background-color : #c11136 ;
    color : #FFFFFF ;
}
#navigation > ul > li > a:hover {          /*  鼠标经过时  */
    background-color : #990020 ;              /*  改变背景色  */
    color : #ffff00 ;                          /*  改变文字颜色  */
}

/*  子菜单的CSS样式  */
#navigation ul li ul {
    list-style-type : none ;
    margin : 0px ;
    padding : 0px 0px 0px 0px ;
}
#navigation ul li ul li {
    border-top : 1px solid #ED9F9F ;
}
#navigation ul li ul li a {
    display : block ;
    padding : 3px 3px 3px 0.5em ;
    text-decoration : none ;
    border-left : 28px solid #a71f1f ;
    border-right : 1px solid #711515 ;
}
#navigation ul li ul li a:link, #navigation ul li ul li a:visited {
    background-color : #e85070 ;
    color : #FFFFFF ;
}
#navigation ul li ul li a:hover {
    background-color : #c2425d ;
    color : #ffff00 ;
}
#navigation ul li ul.myHide {      /*  隐藏子菜单  */
    display : none ;
}
#navigation ul li ul.myShow {      /*  显示子菜单  */
    display : block ;
}
-->
</ style >
< script  language ="javascript" >
function  change(){
    
// 通过父元素li,找到兄弟元素ul
     var  oSecondDiv  =   this .parentNode.getElementsByTagName( " ul " )[ 0 ];
    
// CSS交替更换来实现显、隐
     if (oSecondDiv.className  ==   " myHide " )
        oSecondDiv.className  =   " myShow " ;
    
else
        oSecondDiv.className  =   " myHide " ;
}
window.onload  =   function (){
    
var  oUl  =  document.getElementById( " listUL " );
    
var  aLi  =  oUl.childNodes;     // 子元素
     var  oA;
    
for ( var  i = 0 ;i < aLi.length;i ++ ){
        
// 如果子元素为li,且这个li有子菜单ul
         if (aLi[i].tagName  ==   " LI "   &&  aLi[i].getElementsByTagName( " ul " ).length){
            oA  =  aLi[i].firstChild;     // 找到超链接
            oA.onclick  =  change;     // 动态添加点击函数
        }
    }
}
</ script >
</ head >
< body >
< div  id ="navigation" >
    
< ul  id ="listUL" >
        
< li >< href ="#" > Home </ a ></ li >
        
< li >< href ="#" > News </ a >
            
< ul  class ="myHide" >
                
< li >< href ="#" > Lastest News </ a ></ li >
                
< li >< href ="#" > All News </ a ></ li >
            
</ ul >
        
</ li >
        
< li >< href ="#" > Sports </ a >
            
< ul  class ="myHide" >
                
< li >< href ="#" > Basketball </ a ></ li >
                
< li >< href ="#" > Football </ a ></ li >
                
< li >< href ="#" > Volleyball </ a ></ li >
            
</ ul >         
        
</ li >
        
< li >< href ="#" > Weather </ a >
            
< ul  class ="myHide" >
                
< li >< href ="#" > Today's Weather </ a ></ li >
                
< li >< href ="#" > Forecast </ a ></ li >
            
</ ul >
        
</ li >
        
< li >< href ="#" > Contact Me </ a ></ li >
    
</ ul >
</ div >
</ body >
</ html >

注意:该代码在Firefox 下正常显示,但在IE6 下无法显示正常。

 

jQuery1.2.3 下载 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值