天天看点

CSS实现三级下拉菜单分析

最近在帮同学写一个博客,由于他需要的栏目比较多,所以首页需要三级下拉菜单,从网上找一个,但是不可以直接用!由于前台没有写的太好,所以一些css代码没有看懂,所以我就分析了一下别人的代码,然后用到了自己的网站上,下面是我最后实现的效果。

CSS实现三级下拉菜单分析

下面分析一下我找的代码:

实现效果如下:

CSS实现三级下拉菜单分析

代码以及注释如下,一些标签的意思已在注释上标明:

主要思想:就是改变ul的display属性

一开始ul的display属性是none不显示,当a标签hover的时候,改变ul的display属性使它成为display:block

也就是display:none ------>display:block的变化

其中加入了一些过渡的属性,要不直接放在一级菜单上,二级菜单直接出来,看着有点不舒服,所以加了一点过渡属性

-webkit-transition: all 1s;   /*Firefox4*/
        -moz-transition: all 1s;    /*Safari and Chrome*/
        -o-transition: all 1s;     /* Opera*/
        transition: all 1s;
           
<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style type="text/css">
        nav {     
   margin: 100px auto; 
   text-align: center;
}
 
nav ul ul {
    display: none;   /*该元素不会显示*/
}
 
    nav ul li:hover > ul {   /* > 子菜单选择器 鼠标在li上的时候 改变子ul的display属性*/
        display: block;
    }
 
 
nav ul {
   background: #efefef; 
   background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);   /*背景的一些设置 渐变*/
   background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
   background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
   box-shadow: 0px 0px 9px rgba(0,0,0,0.15); */
     padding: 0 20px; */
    border-radius: 10px;    /*圆角边框*/
    list-style: none;  /*所有的列表属性*/
    position: relative; /*相对定位ul的位置*/
    display: inline-table;  /*内敛表格*/
}
    nav ul:after {   /* css after选择器 */
        content: ""; 
        clear: both; 
        display: block;
    }
 
    nav ul li {
        /*
            transition 属性是一个简写属性,用于设置四个过渡属性:
            transition-property
            transition-duration
            transition-timing-function
            transition-delay

            transition前面的参数是兼容浏览器用的
        */
         -webkit-transition: all 1s;   /*Firefox4*/
        -moz-transition: all 1s;    /*Safari and Chrome*/
        -o-transition: all 1s;     /* Opera*/
        transition: all 1s;
        float: left;  /*使竖向菜单变为横向菜单*/
    }

        nav ul li:hover {  
            background: #4b545f;
             background: -webkit-linear-gradient(#4f5964 0%, #5f6975 40%);
             background: -o-linear-gradient(#4f5964 0%, #5f6975 40%);
             background: linear-gradient(#4f5964 0%, #5f6975 40%); 
        }
            nav ul li:hover a {
                color: #fff;
            }
         
        nav ul li a {
            display: block;  /*使a标签变成块状*/
            padding: 25px 40px; /*a标签左右的距离*/
            color: #757575; 
            text-decoration: none; /*文本的属性*/
        }
             
         
    nav ul ul {
        background: #5f6975;
        border-radius: 0px; padding: 0;
        position: absolute; /*定义子ul的位置*/
         top: 100%;  
    }
        nav ul ul li {
            float: none;  /*清楚子ul里面li标签的浮动*/
            border-top: 1px solid #6b727c; /*下拉菜单中的分割线*/
            border-bottom: 1px solid #575f6a; 
            position: relative;
        }
            nav ul ul li a {
                padding: 15px 40px;
                color: #fff;
            }   
                nav ul ul li a:hover {
                    background: #4b545f;
                }
         
    nav ul ul ul{
        position: absolute; left: 100%; top:0;
    }
    </style>
</head>
<body>
    <nav>
    <ul>
        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Home</a></li>
        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Tutorials</a>
            <ul>
                <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Photoshop</a></li>
                <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Illustrator</a>
                    <ul>
                        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >HTML</a></li>
                        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >CSS</a></li>
                         <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >HTML</a></li>
                        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >CSS</a></li>
                        
                    </ul>
                </li>
                <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Web Design</a>
                    <ul>
                        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >HTML</a></li>
                        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >CSS</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Articles</a>
            <ul>
                <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Web Design</a></li>
                <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >User Experience</a></li>
            </ul>
        </li>
        <li><a href="#" target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow"  target="_blank" rel="external nofollow" >Inspiration</a></li>
    </ul>
</nav>
</body>
</html>