1. 程式人生 > >純css製作三級下拉選單

純css製作三級下拉選單

css本身的功能就挺強大的,尤其是css3出來之後,大部分特效只用css3就能完成了,無需再費心思去想js怎麼怎麼做jQuery怎麼怎麼做,程式碼簡潔質量輕巧。下面是本人用純css製作的三級下拉選單效果:

三級下拉選單

思路很簡單,三級選單直接用三層巢狀的ul佈局:

<div class="nav">
<ul>
    <li>
        <a href="#">電器</a>
        <ul>
            <li>
                <a href="#">家用電器</a
>
<ul> <li><a href="#">生活電器</a></li> <li><a href="#">生活電器</a></li> <li><a href="#">個人護理</a></li> </ul> </li> </ul
>
</li> </ul> </div>

除一級ul外其餘ul隱藏,當滑鼠劃過第一層li時該li下的下一級ul(二級選單)顯示

.nav>ul>li ul{
            display: none;
        }
.nav>ul>li:hover>a+ul{/*滑鼠劃過一級選單的時候二級選單顯示*/
            display: block;
        }

當滑鼠劃過第二層li時該li下的下一級ul(三級選單)顯示

.nav>ul>li>ul>li:hover
ul{/*滑鼠劃過二級選單的時候對應的三級選單顯示*/ display: block; }

基本思路就是這樣,如果需要更多的特效,自己額外新增樣式就可以了,下面附上圖片中例子的完整程式碼:

<DOCTYPE html>
<html>
<head>
    <title>三級下拉選單</title>
    <meta charset="utf-8">
    <style type="text/css">
        body,*{
            margin: 0px;
            padding: 0px;
            font-size: 0px;
            color: #555;
            box-sizing:border-box;
        }
        ul{
            list-style: none;
        }
        .banner{
            width: 100%;
            height: 100px;
        }
        .nav{
            width: 100%;
            height: 60px;
            border: 0px;
            border-top: 1px solid #eee;
            border-bottom: 1px solid #eee;
            background-color: #fff;
        }
        .nav>ul{
            width: 80%;
            margin:0 auto;
        }
        .nav>ul:after{
            display: block;
            content: '';
            clear: both;
        }
        .nav>ul>li{
            display: block;
            width: 140px;
            height: 100%;
            padding-left: 20px;
            float: left;
            text-align: center;
            background: url(img/bg.gif) no-repeat;
            background-position: 21px 22px;
        }
        .nav>ul>li:hover{
            background-color: #fff5f5;
        }
        .nav>ul>li a{
            display: inline-block;
            width: 100%;
            height: 100%;
            padding: 10px 20px;
            font-size: 18px;
            line-height: 40px;
            text-decoration:none;
        }
        .nav>ul>li ul{
            display: none;
        }
        .nav>ul>li:hover>a+ul{/*滑鼠劃過一級選單的時候二級選單顯示*/
            display: block;
        }
        .nav>ul>li>ul{
            width: 160px;
            height: auto;
            border: 1px solid #eee;
            border-radius:3px;
            position: relative;
            top: 0px;
            left: -20px;
        }
        .nav>ul>li>ul>li,.nav>ul>li>ul>li>ul>li{
            display: block;
            width: 100%;
            height: 60px;
            text-align: center;
            border-bottom: 1px solid #eee;
        }
        .nav>ul>li>ul>li:last-child,.nav>ul>li>ul>li>ul>li:last-child{
            border: 0px;
        }
        .nav>ul>li>ul>li:hover,.nav>ul>li>ul>li>ul>li:hover{/*與使用者的互動不能少*/
            background: #fff9f9;
        }
        .nav>ul>li>ul>li:hover ul{/*滑鼠劃過二級選單的時候對應的三級選單顯示*/
            display: block;
        }
        .nav>ul>li>ul>li>ul{
            width: 160px;
            height: auto;
            border: 1px solid #eee;
            border-radius:3px;
            position: relative;
            top: -60px;
            left: 100%;
        }
    </style>
</head>
<body>
<div class="banner"></div>
<div class="nav">
    <ul>
        <li>
            <a href="#">電器</a>
            <ul>
                <li>
                    <a href="#">家用電器</a>
                    <ul>
                        <li><a href="#a" target="_self">生活電器</a></li>
                        <li><a href="#a" target="_self">生活電器</a></li>
                        <li><a href="#a" target="_self">個人護理</a></li>
                    </ul>
                </li>
                <li>
                    <a href="#">數碼</a>
                    <ul>
                        <li><a href="#a" target="_self">平板電腦</a></li>
                        <li><a href="#a" target="_self">數碼相機</a></li>
                        <li><a href="#a" target="_self">電玩動漫</a></li>
                    </ul>
                </li>
                <li>
                    <a href="#">手機</a>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">服飾</a>
            <ul>
                <li>
                    <a href="#">男裝</a>
                    <ul>
                        <li><a href="#a" target="_self">商務男裝</a></li>
                        <li><a href="#a" target="_self">休閒運動</a></li>
                    </ul>
                </li>
                <li>
                    <a href="#">女裝</a>
                    <ul>
                        <li><a href="#a" target="_self">新品</a></li>
                        <li><a href="#a" target="_self">明星網紅</a></li>
                        <li><a href="#a" target="_self">時尚穿搭</a></li>
                    </ul>
                </li>
                <li>
                    <a href="#">童裝</a>
                    <ul>
                        <li><a href="#a" target="_self">演出服</a></li>
                        <li><a href="#a" target="_self">運動裝</a></li>
                        <li><a href="#a" target="_self">連衣裙</a></li>
                    </ul>
                </li>
            </ul>
        </li>
        <li>
            <a href="#">食品</a>
            <ul>
                <li>
                    <a href="#">生活零食</a>
                    <ul>
                        <li><a href="#a" target="_self">乾果</a></li>
                        <li><a href="#a" target="_self">辣條</a></li>
                        <li><a href="#a" target="_self">薯片</a></li>
                    </ul>
                </li>
            </ul>
        </li>
    </ul>
</div>
</body>
</html>