【问题标题】:Full-width Bootstrap dropdown menu at hover disappears悬停时的全角引导下拉菜单消失
【发布时间】:2019-12-06 19:51:26
【问题描述】:

我的全角 Bootstrap 下拉菜单无法正常工作,因为它在按钮和菜单之间有很多空间。

到目前为止,我只使用 CSS,没有使用 javascript。代码如下:

HTML:

<nav class="p-4 navbar navbar-expand-lg navbar-light bg-light">
      <a class="navbar-brand" href="#">
        <img src="http://lorempixel.com/30/30/abstract" width="30" height="30" class="d-inline-block align-top" alt="">
        Shopstrap
      </a>
      <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
      </button>
        <div class="collapse navbar-collapse" id="navbarNavDropdown">
            <ul class="navbar-nav">
              <li class="nav-item active">
                <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="#">Features</a>
              </li>
              <li class="nav-item">
                <a class="nav-link" href="#">Pricing</a>
              </li>
              <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                  Dropdown link
                  <i class="fas fa-angle-up"></i>
                </a>
                <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                  <a class="dropdown-item" href="#">Action</a>
                  <a class="dropdown-item" href="#">Another action</a>
                  <a class="dropdown-item" href="#">Something else here</a>
                </div>
              </li>
               <li class="nav-item dropdown catalog">
                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                  Catalog
                  <i class="fas fa-angle-up"></i>
                </a>
                <div class="dropdown-menu catalog-menu" aria-labelledby="navbarDropdownMenuLink">
                  <a class="dropdown-item" href="#">Action</a>
                  <a class="dropdown-item" href="#">Another action</a>
                  <a class="dropdown-item" href="#">Something else here</a>
                </div>
              </li>

            </ul>
          </div>
</nav>

CSS:

.navbar-default .navbar-nav > li.dropdown:hover > a, 
.navbar-default .navbar-nav > li.dropdown:hover > a:hover,
.navbar-default .navbar-nav > li.dropdown:hover > a:focus {
    background-color: rgb(231, 231, 231);
    color: rgb(85, 85, 85);
}

li.dropdown:hover > .dropdown-menu {
    display: block;
}


.navbar .dropdown.catalog {
    position: static;
    float: none;
}

.navbar .dropdown .dropdown-menu.catalog-menu{
    width: 100%;

}

小提琴: https://jsfiddle.net/m4Lxugea/1/

我希望你们中的任何人都可以帮助我。我在想也许我不能做这个纯粹的 CSS,但我需要为悬停添加 javascript。

亚历杭德罗。

【问题讨论】:

  • 对我来说似乎工作正常。此问题是否特定于浏览器?
  • 它在 Chrome 和 Safari 中都不适合我。只需尝试转到最新的下拉菜单并选择第一项。它消失了。

标签: html css twitter-bootstrap bootstrap-4 dropdown


【解决方案1】:

对你来说关键的 CSS 是:

li.dropdown:hover > .dropdown-menu {
    display: block;
}

这意味着:当您将鼠标悬停在导航(在桌面上)中的“目录”链接上时,显示孩子 .dropdown-menu,一旦您将鼠标悬停,.dropdown-menu 就会进入其默认状态display:none;

使用 JS,您可以添加一个类,以确保 .dropdown-menu 保持打开状态,除非您单击其他位置来撤消此操作

【讨论】:

    【解决方案2】:

    这里是解决方案:Bootstrap 为每个下拉菜单类添加 margin-top。 设为 0px; Bootstrap 在 navbar 类上有填充,也让它覆盖到 0px;

    这是工作示例https://bootstrap-menu.com/detail-megamenu.html

     navbar{ padding-top: 0; padding-bottom: 0; }
     navbar .has-megamenu{position:static!important;}
     navbar .megamenu{left:0; right:0; width:100%; padding:20px;  }
     navbar .nav-link{ padding-top:1rem; padding-bottom:1rem;  }
    

    【讨论】:

      猜你喜欢
      • 2018-04-17
      • 2018-06-04
      • 2017-01-02
      • 2019-10-30
      • 1970-01-01
      • 2014-09-02
      • 2015-03-27
      • 1970-01-01
      相关资源
      最近更新 更多