美文网首页
如何用纯css 媒体查询media queries实现响应式汉堡

如何用纯css 媒体查询media queries实现响应式汉堡

作者: 小宝薯 | 来源:发表于2018-04-20 15:09 被阅读343次
Hamburger_icon

 
PC端和手机移动端均适配,依据设备的宽度大小决定是否值下拉菜单样式

    一、 head里添加meta移动端的样式

<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
width viewport的宽度
height viewport的高度
initial-scale 初始的缩放比例   eg:设置成2.0 那么最初加载的页面就会放大2倍
minimum-scale 允许用户缩放到的最小比例
maximum-scale 允许用户缩放到的最大比例   eg:设置成2.0 那么页面用户最多可以放大2倍
user-scalable 用户是否可以手动缩放 默认值是yes,如果我们设置成no,那么上面的两个sacle就失效,因为已经禁止用户手动调整缩放
width=device-width 在content里 设置屏幕宽度为设备宽度
<div class="nav">
    <!--汉堡logo menu-->
    <label for="toggle">&#9776;</label>
    <input type="checkbox" id="toggle">
    <div class="menu">
        <a href="#">Business</a>
        <a href="#">Service</a>
        <a href="#">Learn more</a>
        <a href="#"><span>Free Trial</span></a>
    </div>
</div>
  • ☰     这个汉堡包menu菜单样子其实有代码实现的 "&#9776;" 而且是作为字体显示的,可以直接用font-size直接调整大小
  • 哈哈,为了打出这个代码, 还要\反斜杠转义

CSS

  • css样式 -通用
 body{
            width: 100%;
            height: 100%;
            margin:0;  //浏览器默认的body的margin是8px;由浏览器的user-agent-stylesheet提供的。所以我们直接覆盖默认就可以了,
        }
        html{
            font-family:'helvetica neue',sans-serif;  //可以写很多种字体样式,意思是浏览器自己一个个识别,前一个没有就看后一个,一直往后找,直到找到可以用的
        }

.nav{
            float: right;
            text-align: right;
            height: 70px;
            line-height: 70px;
            border-bottom: 1px solid #eaeaea;
        }
        label{
            display: none;
        }
        #toggle{
            display:none;
        }
        .menu a{
            margin: 0 10px;
            text-decoration: none;
            color: gray;
        }
        .menu{
            margin: 0 30px 0 0;
        }
        .menu a span{
            color:#54d17a;
        }
   //添加@media样式:
    @media only screen and (max-width: 500px) {
            label{
                display: block;
                cursor: pointer;
                width: 26px;
                float: right;
            }
            .menu{
                width: 100%;
                display: none;
                text-align: center;
            }
            .menu a{
                display: block;
                clear:right;
            }
            #toggle:checked + .menu{  //这是个技术点
                transition:all 0.4s ease-in;
                display: block;
            }

        }
  • label用for绑定的input,自带了点击事件,点击了label的哪个汉堡logo,input就checked,这样就利用纯CSS实现了点击按钮下拉菜单出现的功能


    ↑(●'◡'●)设备宽度大于500px时

 
 

↑(●'◡'●) 设备宽度小于500px时

相关文章

网友评论

      本文标题:如何用纯css 媒体查询media queries实现响应式汉堡

      本文链接:https://www.haomeiwen.com/subject/mijakftx.html