【问题标题】:Fix HTML Submenu修复 HTML 子菜单
【发布时间】:2018-11-07 01:20:55
【问题描述】:

我无法打开子菜单,当我将鼠标悬停在“服务”子菜单上时,我想打开子菜单,我认为我的 CSS 有一些错误。

我尝试仅使用 CSS 来修复菜单。

我试过this codethis one,很遗憾,问题还没有解决。

这是 CSS 和 HTML 代码:

@import url(https://fonts.googleapis.com/css?family=Lato:300,400,700);
/* Starter CSS for Flyout Menu */
#cssmenu,
#cssmenu ul,
#cssmenu ul li,
#cssmenu ul ul {
  list-style: none;
  margin: 0;
  padding: 0;
  border: 0;
}
#cssmenu ul {
  position: relative;
  z-index: 597;
  float: left;
}
#cssmenu ul li {
  float: left;
  min-height: 1px;
  line-height: 1em;
  vertical-align: middle;
}
#cssmenu ul li.hover,
#cssmenu ul li:hover {
  position: relative;
  z-index: 599;
  cursor: default;
}
#cssmenu ul ul {
  margin-top: 1px;
  visibility: hidden;
  position: absolute;
  top: 1px;
  left: 99%;
  z-index: 598;
  width: 100%;
}
#cssmenu ul ul li {
  float: none;
}
#cssmenu ul ul ul {
  top: 1px;
  left: 99%;
}
#cssmenu ul li {
  float: none;
}
#cssmenu ul ul li {
  font-weight: normal;
}
/* Custom CSS Styles */
#cssmenu {
  font-family: 'Lato', sans-serif;
  font-size: 18px;
  width: 200px;
}
#cssmenu ul a,
#cssmenu ul a:link,
#cssmenu ul a:visited {
  display: block;
  color: #848889;
  text-decoration: none;
  font-weight: 300;
}
#cssmenu > ul {
  float: none;
}
#cssmenu ul {
  background: #fff;
}
#cssmenu > ul > li {
  border-left: 3px solid #d7d8da;
}
#cssmenu > ul > li > a {
  padding: 10px 20px;
}
#cssmenu > ul > li:hover {
  border-left: 3px solid #3dbd99;
}
#cssmenu ul li:hover > a {
  color: #3dbd99;
}
#cssmenu > ul > li:hover {
  background: #f6f6f6;
}
/* Sub Menu */
#cssmenu ul ul a:link,
#cssmenu ul ul a:visited {
  font-weight: 400;
  font-size: 14px;
}
#cssmenu ul ul {
  width: 180px;
  background: none;
  border-left: 20px solid transparent;
}
#cssmenu ul ul a {
  padding: 8px 0;
  border-bottom: 1px solid #eeeeee;
}
#cssmenu ul ul li {
  padding: 0 20px;
  background: #fff;
}
#cssmenu ul ul li:last-child {
  border-bottom: 3px solid #d7d8da;
  padding-bottom: 10px;
}
#cssmenu ul ul li:first-child {
  padding-top: 10px;
}
#cssmenu ul ul li:last-child > a {
  border-bottom: none;
}
#cssmenu ul ul li:first-child:after {
  content: '';
  display: block;
  width: 0;
  height: 0;
  position: absolute;
  left: -20px;
  top: 13px;
  border-left: 10px solid transparent;
  border-right: 10px solid #fff;
  border-bottom: 10px solid transparent;
  border-top: 10px solid transparent;
}
<!DOCTYPE html>
<html>
<head>

<!-- Icon Library -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">

<meta charset="UTF-8">
<title>Title</title>
</head>

<body>
<div id="cssmenu">
  <ul>
     <li class="active"><a href="#" target="_blank"><i class="fa fa-fw fa-home"></i> Home</a></li>
     <li><a href="#"><i class="fa fa-fw fa-bars"></i> Services</a>
        <ul>
           <li><a href="#">S1</a>
              <ul>
                 <li><a href="#">S1.1</a></li>
                 <li><a href="#">S1.2</a></li>
              </ul>
           </li>
           <li><a href="#">S2</a></li>
        </ul>
     </li>
     <li><a href="#"><i class="fa fa-fw fa-location-arrow"></i> Adress</a></li>
     <li><a href="#"><i class="fa fa-fw fa-phone"></i> Contact</a></li>
  </ul>
</div>
</body>

</html>

你能帮帮我吗

提前致谢

【问题讨论】:

    标签: html css


    【解决方案1】:

    我建议不要使用visibility: hidden,而是使用display:none 作为子菜单(在下面我的sn-p 中的#cssmenu ul ul 规则中更改)。

    除此之外,您还需要一个 CSS 规则,在父 li 悬停时将直接子 ul 切换为 display: block,使用此规则:

    #cssmenu ul li:hover > ul {
      display: block;
    }
    

    @import url(https://fonts.googleapis.com/css?family=Lato:300,400,700);
    /* Starter CSS for Flyout Menu */
    #cssmenu,
    #cssmenu ul,
    #cssmenu ul li,
    #cssmenu ul ul {
      list-style: none;
      margin: 0;
      padding: 0;
      border: 0;
    }
    #cssmenu ul {
      position: relative;
      z-index: 597;
      float: left;
    }
    #cssmenu ul li {
      float: left;
      min-height: 1px;
      line-height: 1em;
      vertical-align: middle;
    }
    #cssmenu ul li.hover,
    #cssmenu ul li:hover {
      position: relative;
      z-index: 599;
      cursor: default;
    }
    #cssmenu ul ul {
      margin-top: 1px;
      display: none;
      position: absolute;
      top: 1px;
      left: 99%;
      z-index: 598;
      width: 100%;
    }
    #cssmenu ul li:hover > ul {
      display: block;
    }
    #cssmenu ul ul li {
      float: none;
    }
    #cssmenu ul ul ul {
      top: 1px;
      left: 99%;
    }
    #cssmenu ul li {
      float: none;
    }
    #cssmenu ul ul li {
      font-weight: normal;
    }
    /* Custom CSS Styles */
    #cssmenu {
      font-family: 'Lato', sans-serif;
      font-size: 18px;
      width: 200px;
    }
    #cssmenu ul a,
    #cssmenu ul a:link,
    #cssmenu ul a:visited {
      display: block;
      color: #848889;
      text-decoration: none;
      font-weight: 300;
    }
    #cssmenu > ul {
      float: none;
    }
    #cssmenu ul {
      background: #fff;
    }
    #cssmenu > ul > li {
      border-left: 3px solid #d7d8da;
    }
    #cssmenu > ul > li > a {
      padding: 10px 20px;
    }
    #cssmenu > ul > li:hover {
      border-left: 3px solid #3dbd99;
    }
    #cssmenu ul li:hover > a {
      color: #3dbd99;
    }
    #cssmenu > ul > li:hover {
      background: #f6f6f6;
    }
    /* Sub Menu */
    #cssmenu ul ul a:link,
    #cssmenu ul ul a:visited {
      font-weight: 400;
      font-size: 14px;
    }
    #cssmenu ul ul {
      width: 180px;
      background: none;
      border-left: 20px solid transparent;
    }
    #cssmenu ul ul a {
      padding: 8px 0;
      border-bottom: 1px solid #eeeeee;
    }
    #cssmenu ul ul li {
      padding: 0 20px;
      background: #fff;
    }
    #cssmenu ul ul li:last-child {
      border-bottom: 3px solid #d7d8da;
      padding-bottom: 10px;
    }
    #cssmenu ul ul li:first-child {
      padding-top: 10px;
    }
    #cssmenu ul ul li:last-child > a {
      border-bottom: none;
    }
    #cssmenu ul ul li:first-child:after {
      content: '';
      display: block;
      width: 0;
      height: 0;
      position: absolute;
      left: -20px;
      top: 13px;
      border-left: 10px solid transparent;
      border-right: 10px solid #fff;
      border-bottom: 10px solid transparent;
      border-top: 10px solid transparent;
    }
    <!DOCTYPE html>
    <html>
    <head>
    
    <!-- Icon Library -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css">
    
    <meta charset="UTF-8">
    <title>Title</title>
    </head>
    
    <body>
    <div id="cssmenu">
      <ul>
         <li class="active"><a href="#" target="_blank"><i class="fa fa-fw fa-home"></i> Home</a></li>
         <li><a href="#"><i class="fa fa-fw fa-bars"></i> Services</a>
            <ul>
               <li><a href="#">S1</a>
                  <ul>
                     <li><a href="#">S1.1</a></li>
                     <li><a href="#">S1.2</a></li>
                  </ul>
               </li>
               <li><a href="#">S2</a></li>
            </ul>
         </li>
         <li><a href="#"><i class="fa fa-fw fa-location-arrow"></i> Adress</a></li>
         <li><a href="#"><i class="fa fa-fw fa-phone"></i> Contact</a></li>
      </ul>
    </div>
    </body>
    
    </html>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-16
      • 2012-04-02
      • 2015-10-19
      • 1970-01-01
      • 2020-12-12
      • 1970-01-01
      • 1970-01-01
      • 2021-10-05
      相关资源
      最近更新 更多