我有一个HTML菜单,在主按钮上悬停时会显示子菜单,但我想知道当单击该按钮上的时,是否可以使子菜单出现。
*Configurações Padrões*/ ul.menu,
.menu li,
.menu a {
  margin: 0;
  padding: 0;
  list-style: none;
  text-decoration: none;
}
ul.menu ul {
  position: absolute;
  display: none;
}
ul.menu {
  float: left;
  font-family: Verdana, Geneva, sans-serif;
  font-size: 15px;
  padding: 0 5px;
  margin: 0px -8px;
  width: 100%;
  position: fixed;
  bottom: 0;
}
/* Configurações nivel 1*/
.menu li {
  float: left;
  width: auto;
  position: relative;
}
.menu li a {
  display: block;
  padding: 0 20px;
  line-height: 45px;
  height: 45px;
  float: left;
}
/* Configurações nivel 2*/
.menu li:hover>ul.submenu-1 {
  display: block;
  top: -145px;
  left: 0;
  padding: 5px;
  width: 200px;
}
.menu ul.submenu-1 a {
  width: 160px;
  padding: 0 20px;
}
/* Configurações nivel 2*/
.menu li:hover>ul.submenu-2 {
  display: block;
  top: 0;
  left: 135px;
  padding: 5px;
  width: 200px;
}
.menu ul.submenu-2 a {
  width: 140px;
  padding: 0 20px;
}
/* Configurações nivel 3*/
.menu li:hover>ul.submenu-3 {
  display: block;
  top: 0;
  left: 195px;
  padding: 5px;
  width: 200px;
}
.menu ul.submenu-3 a {
  width: 160px;
  padding: 0 20px;
}
/*Configurações de cores*/
/*nivel 1*/
.menu {
  background: #CCC;
}
.menu a {
  color: #000;
}
.menu li:hover>a {
  background: #999;
  color: #fff;
}
/*nivel 2*/
.submenu-1 {
  background: #999;
}
.submenu-1 a {
  color: #fff;
}
.submenu-1 li:hover>a {
  background: #666;
}
/*nivel 3*/
.submenu-2 {
  background: #666;
}
.submenu-2 a {
  color: #fff;
  margin-top: -4px;
}
.submenu-2 li:hover>a {
  background: #333;
}
/*nivel 3*/
.submenu-3 {
  background: #333;
}
.submenu-3 a {
  color: #fff;
}
.submenu-3 li:hover>a {
  background: #000;
}
.menuul li:hover,
ul li.active {}<ul class="menu">
  <li><a href="#">Iniciar</a>
    <ul class="submenu-1">
      <li><a href="#">Submenu 1</a>
        <ul class="submenu-3">
          <li><a href="#">Submenu 7</a></li>
          <li><a href="#">Submenu 8</a></li>
          <li><a href="#">Submenu 9</a></li>
        </ul>
      </li>
      <li><a href="#">Submenu 2</a></li>
      <li><a href="#">Submenu 3</a></li>
      <ul class="submenu-2">
        <li><a href="#">Submenu 4</a></li>
        <li><a href="#">Submenu 5</a></li>
        <li><a href="#">Submenu 6</a></li>
      </ul>
  </li>
  </ul>
  </li>
</ul>
我需要类似于这个站点的windows98样式按钮:http://osrollers.tumblr.com/
发布于 2018-07-02 19:51:07
如果您想在单击时激活子菜单,而不是鼠标切换,您必须使用一个小的JavaScript代码。
请看片段中的评论!
// collect each menu item
const links = document.querySelectorAll(".menu>li>a");
// run a loop
for (let i=0; i<links.length; i++)
{
  // to bind a click event listener to each menu item
  links[i].addEventListener("click", function()
  {
    // do stuff only if the current item has a submenu
    if (this.nextSibling != null)
    {
      // cache the submenu of the current item
      let submenu = this.nextSibling.nextSibling;
      // check if the submenu is already visible
      if (submenu.classList.contains("active"))
      {
        // if so, hide it
        submenu.classList.remove("active");
      }
      else
      {
        // if not, show it
        submenu.classList.add("active");
      }
    }
  });
}.submenu {
display: none;}
.submenu.active {
display: block;}<ul class="menu"> 
	<li><a href="#">Main</a>
		<ul class="menu submenu"> 
			<li><a href="#">1</a>
				<ul class="menu submenu"> 
					<li><a href="#">1.1</a></li>
					<li><a href="#">1.2</a></li>
					<li><a href="#">1.3</a></li>
				</ul>
			</li>
			<li><a href="#">2</a></li>
			<li><a href="#">3</a>
				<ul class="menu submenu"> 
					<li><a href="#">3.1</a></li>
					<li><a href="#">3.2</a></li>
					<li><a href="#">3.3</a></li>
				</ul>
			</li>
		</ul>
	</li>
</ul>
https://stackoverflow.com/questions/51142055
复制相似问题