html - CSS 下拉菜单 - 悬停消失

标签 html css drop-down-menu hover

当鼠标图标出现在下拉菜单上时,悬停不应该消失。我该怎么做呢?

Fiddle

.m-navbar ul li{float: left; font-weight: 500; font-size: 20px;margin-left: 25px;list-style:none;}

.m-navbar ul li a{color:#2d3438;border-radius: 4px;padding: 7px 25px;text-decoration:none;}

.m-navbar ul li a:hover{text-decoration: none; background-color: #656a6f;border-radius: 4px;color: #ffc000;}

.m-navbar ul li ul{display: none;width: 200px;float: left;background-color: #ffc000;margin: 9px 0 0 0;position: absolute;padding: 5px 0 ;border-radius:4px;}

.m-navbar ul li:hover ul {display: block;}

.m-navbar ul li ul li a:hover{background-color: #ffc000;color: #ffffff;}
<div class="m-navbar">
  <ul>
    <li>
      <a href="">Home</a>
      <ul>
        <li><a href="#">Laptops</a></li>
        <li><a href="#">Monitors</a></li>
        <li><a href="#">Printers</a></li>
      </ul>
    </li>
    <li>
      <a href="">References</a>
      <ul>
        <li><a href="#">Laptops</a></li>
        <li><a href="#">Monitors</a></li>
        <li><a href="#">Printers</a></li>
      </ul>
    </li>
    <li><a href="">About Me</a> </li>
    <li><a href="">Contact</a></li>
  </ul>
</div>

最佳答案

由于 CSS 中定义的 9px 上边距,顶部按钮和下拉菜单之间存在间隙。如果鼠标在该间隙上触发,则悬停将被取消,所有内容都会消失。

要么删除间隙,要么用实际元素替换间隙,例如 HR 元素,如下所示:

<li>
    <a href="">Home</a>
    <hr />
    <ul>        
        <li><a href="#">Laptops</a></li>
        <li><a href="#">Monitors</a></li>
        <li><a href="#">Printers</a></li>
    </ul>
</li>

然后编辑 CSS 并从 .m-navbar ul li ul 中删除 9px 边距

然后创建 HR 样式:

.m-navbar ul li hr { 边框:0px;内边距:0px;边距:9 像素 0 像素 0 像素 0 像素; }

关于html - CSS 下拉菜单 - 悬停消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28199789/

相关文章:

jquery - slideDown Jquery CSS 设置?

javascript - jQuery UI 布局调整大小

html - SharedAccessSignature 和 img HTML 标签

javascript - Img 源更改取决于从 select 中选择的选项

CSS:如何删除 Firefox 中显示的列表项的缩进

php - 使用 PHP 在下拉列表中显示选定的国家/地区

jquery - 将自定义的 <option> 添加到所有现有的 <options>

javascript - jQuery:选择 tr 使所有 td 动态匹配过滤条件

html - 位置 :fixed sliding bug in Chrome Mobile

jquery - 在 jQuery 中用自定义 div 替换动画宽度