响应式菜单制作

37 篇文章 0 订阅
33 篇文章 0 订阅

看看效果:

PC端:

QQ截图20150327215831

移动端:

QQ截图20150327215915

一、HTML

<div id="demo">
          <span class="icon-menu" id="icon"></span>
         <ul class="nav">
             <li>首页</li>
             <li>前端开发
                     <ul class="submenu">
                         <li>HTML-CSS</li>
                         <li>JQuery</li>
                         <li>JavaScript</li>
                     </ul>
             </li>
             <li>后端开发
                     <ul class="submenu">
                         <li>PHP</li>
                         <li>Python</li>
                         <li>Ruby</li>
                     </ul>
             </li>
             <li>移动开发
                     <ul class="submenu">
                         <li>Android</li>
                         <li>IOS</li>
                     </ul>
             </li>
             <li>编程语言
                     <ul class="submenu">
                         <li>C-C++</li>
                         <li>Java</li>
                     </ul>
             </li>
             <li>业界分享</li>
             <li>开发平台
                     <ul class="submenu">
                         <li>Linux-Vim</li>
                         <li>Git</li>
                     </ul>
             </li>
         </ul> 
 </div>

二、CSS

#demo{
      margin: 0 auto;
      padding: 0;
    }
    ul{
        list-style: none;
    }
    ul.nav{
      list-style: none;
      font-family: "Microsoft Yahei"
    }
    ul.nav li{
        height: 20px;
        color: #ffffff;
        cursor: pointer;
        line-height: 20px;
          background-color: #67544D;
          padding: 15px;
    }
    @media screen and (min-width: 844px){
        #demo{
             width: 845px;
        }
        #icon{
            display: none;
        }
        ul.nav>li{
              display: inline-block;
              margin-left: 15px;
              position: relative;
        }
        ul.submenu{
            position: absolute;
            z-index: 99;
            top: 50px;
            left: -20px;
            width: 64px;
            display: none;
            margin-left: 15px
        }
        ul.submenu li{
            width: 100%;
            margin-left: -35px;
            line-height: 100%;
            text-align: center;
        }
    }
    @media screen and (max-width:843px){
        #demo{
            position: relative;
        }
        #icon{
            display: inline-block;
            font-size: 20px;
            position: relative;
        }
        ul.nav{
            width: 100%;
            position: relative;
            top: -18px;
            left: 0;
            display: none;
        }
        ul.nav>li{
              margin-left: -40px;
              position: relative;
            height: auto;
        }
        ul.submenu{
            display:none;
            color: white
        }
        .shownav{
            display: block;
        }
    }

三、js

$(function(){
  $('.nav>li').each(function()
  {
      $(this).on({
          mouseover:function(){
              $(this).css({backgroundColor:"#48403D",color:"#ACE360"})
.find("ul").slideDown(500).
               find("li").each(function(){
                  $(this).hover(
                      function()
                      {
                          $(this).css({backgroundColor:"#48403D",
color:"#ACE360"});
                      },
                      function(){
                          $(this).css({backgroundColor:"#67544D",
color:"#FFFFFF"});
                      });
              });
          },
          mouseleave:function(){
              $(this).find("ul").css("display","none").stop(true);
          },
          mouseout:function(){
              $(this).css({backgroundColor:"#67544D",
color:"#FFFFFF"});
          }
      });
  });
 /*toggleClass不起作用?????*/
  var count = 1;
  $("#icon").on("click",function(){
      if(count == 1){
          $("ul.nav").css("display","block");
          count++;
      }
      else{
          $("ul.nav").css("display","none");
          count=1;
      }
  })

测试地址:http://test92.sinaapp.com/test/test.html

原文:http://www.ido321.com/1486.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作响应的二级菜单,可以使用HTML5和CSS3的一些技术来完成。以下是一个基本的示例: HTML代码: ``` <nav> <ul> <li><a href="#">Home</a></li> <li><a href="#">About</a> <ul> <li><a href="#">Our Story</a></li> <li><a href="#">Meet the Team</a></li> </ul> </li> <li><a href="#">Services</a></li> <li><a href="#">Contact</a></li> </ul> </nav> ``` CSS代码: ``` nav ul { list-style: none; margin: 0; padding: 0; display: flex; justify-content: space-between; } nav li { position: relative; } nav a { display: block; padding: 10px; color: #333; text-decoration: none; } nav ul ul { position: absolute; top: 100%; left: 0; opacity: 0; visibility: hidden; background: #fff; box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1); transition: all 0.3s ease-in-out; } nav ul li:hover > ul { opacity: 1; visibility: visible; } @media only screen and (max-width: 768px) { nav { flex-direction: column; } nav li { width: 100%; text-align: center; } nav ul ul { position: static; opacity: 1; visibility: visible; display: none; margin-top: 10px; } nav ul li:hover > ul { display: block; } } ``` 在这个示例中,我们使用了HTML的`<nav>`元素来包含菜单列表。我们使用了CSS的flex布局来排列菜单项,并且使用了`position: relative`和`position: absolute`属性来控制子菜单的位置。 在CSS中,我们使用了媒体查询来检测屏幕大小,并在小屏幕上更改菜单的布局。我们使用了`flex-direction: column`来使菜单项垂直排列,并使用`display: none`和`display: block`来控制子菜单的显示和隐藏。 这只是一个基本的示例,你可以根据自己的需求进行调整和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值