HTML下拉导航菜单的实现:CSS/Js的实现方案

更新日期: 2019-07-10阅读: 3k标签: 菜单

熟练使用导航栏,对于网站排版非常重要,使用css,js,jq等你可以转换成好看的导航栏而不是枯燥的html菜单。  


CSS实现: 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
        <meta name="Genarator" content="Sublime Text"/>
        <meta name="description" content="菜单的实现" />
        <meta name="keywords" content="CSS实现,下拉菜单"/>
  <title>CSS实现下拉菜单</title>
 <style type="text/css">
      *{ margin:0px; padding:0px;}
       #menu{ 
        background-color:#eee; 
        width:600px; 
        height:40px;
         margin:0 auto;
       }
       ul{ list-style:none;}
       ul li{ 
        float:left; 
        line-height:40px;
         text-align:center; 
         position:relative;
       }
       a{ 
        text-decoration:none; 
        color:#000;
         display:block;
         width:90px;
       }
       a:hover{ 
        color:#FFF; 
        background-color:#666;
        }
       ul li ul li{
        float:none; 
        border-left:none;
         margin-top:2px; 
         background-color:#eee;
          } 
       ul li ul{ 
        display:none;
         width:90px; 
         position:absolute;
       }
       ul li:hover ul{ display:block;}
 </style>
</head>
<body>
<div id="menu">
   <ul>
  <li><a href="#">首页</a></li>
  <li><a href="#">课程大厅</a>
      <ul>
          <li><a href="#">JavaScript</a></li>
          <li><a href="#">jquery</a></li>
      </ul>
  </li>
  <li><a href="#">学习中心</a>
    <ul>
    <li><a href="#">视频学习</a></li>
      <li><a href="#">案例学习</a></li>
      <li><a href="#">交流平台</a></li>
      </ul>
  </li>
  <li><a href="#">经典案例</a></li>
  <li><a href="#">关于我们</a></li>
  <li><a href="#">联系我们</a></li>
 </ul>
</div>
</body>
</html>


Js实现

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
        <meta name="Genarator" content="Sublime Text"/>
        <meta name="description" content="菜单的实现" />
        <meta name="keywords" content="javascript实现,下拉菜单"/>
   <title>JavaScript实现下拉菜单</title>
<style type="text/css">
      *{ margin:0px; padding:0px;}
      body{ 
        font-family:Verdana, Geneva, sans-serif;
       font-size:14px;
     }
      #nav{
       width:600px; 
       height:40px; 
       background-color:#eee;
        margin:0 auto;
      }
      ul{ list-style:none;}
      ul li{ 
        float:left; 
        line-height:40px; 
        text-align:center; 
        width:100px;
      }
      a{ 
        text-decoration:none;
         color:#000; 
         display:block;
       }
      a:hover{ 
        color:#F00; 
        background-color:#666;
      }
      ul li ul li{ 
        float:none;
        background-color:#eee; 
        margin:2px 0px;
      }
      ul li ul{ display:none;}
</style>
 <script type="text/javascript">
        function displaySubMenu(li) {
            var subMenu = li.getElementsByTagName("ul")[0];
            subMenu.style.display = "block";
        }
        function hideSubMenu(li) {
            var subMenu = li.getElementsByTagName("ul")[0];
            subMenu.style.display = "none";
        }
    </script>
</head>

<body>
<div id="nav">
<ul>
  <li><a href="#">首页</a></li>
  <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"><a href="#">课程大厅</a>
     <ul>
         <li><a href="#">JavaScript</a></li>
         <li><a href="#">Html/CSS</a></li>
     </ul>  
  </li>
  <li onmouseover="displaySubMenu(this)" onmouseout="hideSubMenu(this)"><a href="#">学习中心</a>
      <ul>
         <li><a href="#">视频学习</a></li>
         <li><a href="#">实例练习</a></li>
         <li><a href="#">问与答</a></li>
     </ul>  
  </li>
  <li><a href="#">经典案例</a></li>
  <li><a href="#">关于我们</a></li>
  <li><a href="#">联系我们</a></li>
</ul>
</div>
</body>
</html>


jq实现: 

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
        <meta name="Genarator" content="Sublime Text"/>
        <meta name="description" content="菜单的实现" />
        <meta name="keywords" content="JQuery实现,下拉菜单"/>
<title>JQuery实现下拉菜单</title>
  <style type="text/css">
      *{ margin:0px; padding:0px;}
       #menu{ 
          background-color:#eee;
          width:600px;
         height:40px;
          margin:0 auto;
        }
       ul{ list-style:none;}
       ul li{ 
          float:left;  
          line-height:40px;
          text-align:center;
          position:relative;
        }
       a{ 
         text-decoration:none; 
         color:#000; 
         display:block;
         width:90px;
       }
       a:hover{ 
        color:#FFF; 
        background-color:#666;
      }
       ul li ul li{ 
        float:none;
        border-left:none;
         margin-top:2px; 
         background-color:#eee;
          } 
       ul li ul{
          width:90px;
          position:absolute;
          left:0px; 
          top:40px;
           display:none;
         }
  </style>
<script src="jquery-1.12.0.min.js"></script>
<script type="text/javascript">
    $(function(){

       $(".navmenu").mouseover(function(){

           $(this).children("ul").show();

           })

       $(".navmenu").mouseout(function(){

           
           $(this).children("ul").hide();

           
           })

        })

</script>
</head>
<body>
<div id="menu">
   <ul>
  <li><a href="#">首页</a></li>
  <li class="navmenu"><a href="#">课程大厅</a>
      <ul>  
         <li><a href="#">JavaScript</a></li>
         <li><a href="#">jQuery</a></li>
      </ul>
  </li>
  <li class="navmenu"><a href="#">学习中心</a>
      <ul>
         <li><a href="#">视频学习</a></li>
         <li><a href="#">案例学习</a></li>
         <li><a href="#">交流平台</a></li>
      </ul>
  </li>
  <li><a href="#">经典案例</a></li>
  <li><a href="#">关于我们</a></li>
  <li><a href="#">联系我们</a></li>
  </ul>
 </div> 
</body>
</html>


 

 

链接: https://fly63.com/article/detial/4591

Flutter实现仿微信QQ侧滑菜单组件

1. 首先可以滑出菜单 2. 菜单滑动到一定距离完全滑出,未达到距离回滚 3. 菜单数量、样式随意定制 4. 菜单点击回调 5. 菜单展开时,点击 item 收回菜单,需求明了以后就可以写代码了。

前后端分离开发中动态菜单的两种实现方案

做权限管理,一个核心思想就是后端做权限控制,前端做的所有工作都只是为了提高用户体验,我们不能依靠前端展示或者隐藏一个按钮来实现权限控制,这样肯定是不安全的。就像用户注册时需要输入邮箱地址,前端校验之后,后端还是要校验

简单的树形菜单如何写?

数据结构中含有图片、名称、children的树形结构,需要展示出每一级的图片名称和图片,找了些树形图的插件,都没有展示大的图片的,一般都是小图标,就自己试着写一个包含图的简单的插件。

vue项目中的菜单权限控制

在pc 管理系统这种类型的产品,通常会涉及到账号权限的控制,不同的账号权限能浏览的功能模块是不同的,对应侧边栏菜单模块的显示也会不同。单点登录类系统,通常会多个项目公用一套登录系统,项目首页直接就是dashboard 或者 index页面

CSS多级菜单的实现

这是一个相当炫的功能,让网页看起来像桌面程序,如window的开始菜单。实现原理基本和纯CSS相册差不多,但要注意的事项比较多,让我们一步步来吧。

vue-contextmenujs原生右键菜单组件

vue-contextmenujs:Vue 原生实现右键菜单组件, 零依赖;npm 安装npm install vue-contextmenujs;测试中使用的是element-ui图标 ;

在Vue中实现随hash改变响应菜单高亮

Vue+Element 实现管理页面菜单栏, 点击菜单时 router 改变 hash 访问不同子组件。但是改变 hash 时菜单栏展开状态和 highlight 并不会同步, 需要手动实现。

Vue3 封装 Element Plus Menu 无限级菜单组件

本文分别使用 SFC(模板方式)和 tsx 方式对 Element Plus el-menu 组件进行二次封装,实现配置化的菜单,有了配置化的菜单,后续便可以根据路由动态渲染菜单。

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!