使用CSS在菜单悬停时显示子菜单 [英] Displaying a sub-sub-menu on hover of menu with CSS

查看:59
本文介绍了使用CSS在菜单悬停时显示子菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要在子菜单上的鼠标悬停时显示子菜单.到目前为止,我已经完成了在菜单单击时显示菜单->子菜单的代码,但是要继续,我希望有一个功能可以在悬停子菜单时显示子菜单.有人可以帮我达到同样的目的吗?

I need to display sub-sub-menu on hover of my sub-menu. So far I did code to display menu -> sub-menu on menu click, but to proceed I want a functionality to display sub-sub-menu on hover of my sub-menu. Can somebody help me to achieve the same?

var ddmenuitem = 0;

function jsddm_open() {
  jsddm_close();
  ddmenuitem = $(this).find('ul.submenu').css('display', 'block');
  //   $(this).find('div.subsubmenu').css('display','none');
}

function jsddm_close() {
  if (ddmenuitem) ddmenuitem.css('display', 'none');
}
$(document).ready(function() {
  $('#topnav > ul > li').bind('click', jsddm_open)
  $('#topnav > ul > li > a').click(function(ev) {
    if ($(this).hasClass('current')) {
      ev.preventDefault();
    }


    if ($(this).attr('class') != 'active') {
      $('#topnav ul li a').removeClass('active');
      $(this).addClass('active');
    }
  });
});

#topnav {
  float: left;
  width: 600px;
  height: 30px;
  background: black;
  margin-top: 10px;
  position: relative;
  font-size: 15px;
  margin-left: 30px
}

#topnav ul {
  list-style: none;
  padding: 0px;
  margin: 0px;
}

#topnav ul li {
  float: left;
  margin: 0;
  padding: 0;
}

#topnav ul li a {
  padding: 5px 15px;
  color: red;
  text-decoration: none;
  display: block;
  font-weight: bold;
}

#topnav ul li a:link {
  color: red;
  text-decoration: none;
}

#topnav ul li a:visited {
  color: #FFF;
  text-decoration: none;
}

#topnav ul li a:hover {
  color: red;
  text-decoration: none;
}

#topnav ul li a.active {
  text-decoration: none;
  color: black;
  background: #e0e0e0;
}

#topnav ul li ul.submenu {
  float: left;
  padding: 4px 0;
  position: absolute;
  left: 0;
  top: 30px;
  display: none;
  background: #e0e0e0;
  color: #00537F;
  width: 600px;
  height: 30px;
}

#topnav ul li ul.submenu a {
  display: inline;
  color: #00537F;
  padding: 4px 8px;
}

#topnav ul.submenu a:hover {
  background-color: black;
  color: white;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="topnav">
  <ul>sds
    <li>
      <a href="#">Admin</a>
    </li>
    <li>
      <a href="#"> MAC </a>
      <ul class="submenu">
        <li><a href="#">Master Data</a></li>
        <li>
          <a href="#">Transaction Data</a>
          <ul>
            <li><a href="#">Company Master</a></li>
            <li><a href="#">Location Master</a></li>
            <li><a href="#">Size Master</a></li>
          </ul>
        </li>
        <li>
          <a href="#">Admin Data</a>
        </li>
      </ul>

    </li>
  </ul>
</div>

推荐答案

在不使用jquery或javascript的情况下尝试以下代码段,只需使用CSS即可完成.并根据您的问题进行了更新

Try the following snippet without using jquery or javascript, you can get it done using only css. And have updated according to your question

#nav {
  list-style: none inside;
  margin: 0;
  padding: 0;
  text-align: center;
}

#nav li {
  display: block;
  position: relative;
  float: left;
  background: #000000;
}

#nav li a {
  display: block;
  padding: 0;
  text-decoration: none;
  width: 200px;
  line-height: 35px;
  color: #fff;
}

#nav li li a {
  font-size: 80%;
}

#nav li:hover {
  background: #ff0000;
}

#nav ul {
  position: absolute;
  padding: 0;
  left: 0;
  display: none;
}

#nav li:hover ul ul {
  display: none;
}

#nav li:hover ul {
  display: block;
}

#nav li li:hover ul {
  display: block;
  margin-left: 200px;
  margin-top: -35px;
}

<div id="topnav">
  <ul id="nav">
    <li>
      <a href="#">Admin</a>
    </li>
    <li>
      <a href="#"> MAC </a>
      <ul class="submenu">
        <li><a href="#">Master Data</a></li>
        <li>
          <a href="#">Transaction Data &#8658; </a>
          <ul>
            <li><a href="#">Company Master</a></li>
            <li><a href="#">Location Master</a></li>
            <li><a href="#">Size Master</a></li>
          </ul>
        </li>
        <li>
          <a href="#">Admin Data</a>
        </li>
      </ul>

    </li>
  </ul>
</div>

这篇关于使用CSS在菜单悬停时显示子菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆