总结 响应式网站的导航栏

这是我们在PC端浏览的效果


这是我们在手机上浏览的效果

完整代码:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
    <style type="text/css">
        ul {
            padding: 0;
            margin: 0;
        }

        a {
            text-decoration-style: none;
            color: white;
            text-decoration: none;
        }

        li {
            list-style: none;
        }

        nav {
            text-align: center;
            background: #25383c;
        }

        .nav-list-item a{
            color:white;
            display:block;
            padding:20px 40px;
        }

        .nav-list-item:hover> ul{
            display:block;
        }

        .nav-submenu-list {
            display: none;
        }

        .menu-btn{
            border:none;
            padding:8px 0;
        }

        .clearfix{
            content:'';
            display:block;
            clear:both;
        }

        .btn-icon-close{
            background:url("./images/cross.png") no-repeat center center;
        }

        .btn-icon-menu {
            background: url("./images/icon.png") no-repeat center center;
        }

        .menu-btn-icon{
            border:none;
            width:30px;
            height:30px;
            background-size:cover;
            float:left;
            cursor:pointer;
            margin-left:10px;
        }

        .nav-submenu-list {
            background: gray;
        }

        @media all and (min-width:480px){
            .nav-list-item{
                display:inline-block;
                position:relative;
            }

            .nav-submenu-list{
                display:none;
                position:absolute;
                left:0;
                top:100%;
            }

            .nav-container-list{
                max-width:1280px;
                margin:0 auto;
            }

            .menu-btn{
                display:none;
            }
        }
    </style>
</head>
<body>
    <nav>
        <div class="menu-btn">
            <a href="javascript:void(0)" class="menu-btn-icon btn-icon-close"></a>
            <div class="clearfix"></div>
        </div>
        <ul class="nav-container-list">
            <li class="nav-list-item"><a href="">首页</a></li>
            <li class="nav-list-item"><a href="">关于我</a></li>
            <li class="nav-list-item">
                <a href="">开源项目</a>
                <ul class="nav-submenu-list">
                    <li class="nav-submenu-item"><a href="">subitem1</a></li>
                    <li class="nav-submenu-item"><a href="">subitem1</a></li>
                    <li class="nav-submenu-item"><a href="">subitem1</a></li>
                    <li class="nav-submenu-item"><a href="">subitem1</a></li>
                </ul>
            </li>
            <li class="nav-list-item"><a href="">订阅</a></li>
        </ul>
    </nav>

    <script type="text/javascript">
        var btn = document.querySelector('.menu-btn-icon');
        var menu = document.querySelector('.nav-container-list');
        var menuIsCollapse = false;

        btn.onclick = function () {
            menuIsCollapse = !menuIsCollapse;
            if (menuIsCollapse) {
                menu.style.display = 'none';
                btn.classList.remove('btn-icon-close');
                btn.classList.add('btn-icon-menu');
            } else {
                menu.style.display = 'block';
                btn.classList.remove('btn-icon-menu');
                btn.classList.add('btn-icon-close');
            }
        }
    </script>
</body>
</html>

代码摘抄自《高性能响应式web开发》


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值