css媒体查询与导航栏

前言:之前的导航栏一直都在用bootstrap框架,基于框架的导航栏自适应性很好,所以一直就懒于自己去写,最近在看网页的自适应性,所以就自己动手写了个导航栏,效果及代码如下:


代码:
html代码:

<nav>
    <div class="btn-menu">
        <a href="#" class="btn-menu-icon btn-list-icon"></a>
    </div>
    <div class="clearfix"></div> 
    <ul class="nav-container-list">
        <li class="nav-list-item"><a href="#">item1</a></li>
        <li class="nav-list-item"><a href="#">item2</a></li>
        <li class="nav-list-item"><a href="#">item3</a></li>
        <li class="nav-list-item"><a href="#">item4</a></li>
        <li class="nav-list-item"><a href="#">item5</a></li>
    </ul>
</nav>

注意:因为在.btn-menu-icon类中用到了坐浮动,所以加了个div用于清除浮动
css代码:

body
{
    padding: 0;
    margin:0;
}

nav
{
    height:50px;
    background: #000;
    line-height: 30px;
}
.nav-container-list
{
    display:block;
    margin:0 auto;
    background: #000;
}

.nav-list-item
{
    display: inline-block;
}

.nav-list-item a
{
    text-decoration: none;
    display: block;
    color: #fff;
    padding: 10px 40px;
}

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

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

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

.btn-menu-icon
{
    border:none;
    width: 30px;
    height:30px;
    background-size: cover; /*让图片覆盖整个div*/
    float: left;
    cursor: pointer;
    margin-left: 10px;
}

.clearfix /*清除浮动*/
{
    content: '';
    display: block;
    clear: both;
}

@media (max-width:480px) /*媒体查询,当页面宽度小于等于480px时执行*/
{
    .btn-menu
    {
        display: block;
    }

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

    .nav-list-item
    {
        display: block;
        background: #000;
        margin-left: -40px;
    }

}


js脚本:

<script type="text/javascript">
    var btn = document.querySelector('.btn-menu-icon');
    var nav = document.querySelector('.nav-container-list');
    var flag = false;
    btn.onclick = function()
    {
        flag = !flag;
        if (flag)
        {
            nav.style.display = 'block';
            btn.classList.remove('btn-list-icon');
            btn.classList.add('btn-close-icon');
        }
        else
        {
            nav.style.display = '';
            btn.classList.remove('btn-close-icon');
            btn.classList.add('btn-list-icon'); 
        }

    }

J脚本的功能:在移动端时用于导航栏的折叠与展开


效果如图:
普通桌面版:
这里写图片描述
移动端版:
这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值