css - 尽管设置了 Z-Index,但子菜单中的下拉菜单不可见

标签 css twitter-bootstrap

我真的不知道如何解决这个问题。我正在使用 Bootstrap 3,并使用额外的自定义 CSS 在顶部添加子菜单功能。

二级菜单项仅在子菜单元素可视部分可见,右侧部分不可见:

enter image description here

enter image description here

.dropdown-submenu {
  position: relative;
  z-index: 9999999;
}

.dropdown-submenu>.dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  -webkit-border-radius: 0 6px 6px 6px;
  -moz-border-radius: 0 6px 6px 6px;
  border-radius: 0 6px 6px 6px;
}

.dropdown-submenu:hover>.dropdown-menu {
  display: block;
  z-index: 9999999;
}

.dropdown-submenu>a:after {
  display: block;
  z-index: 9999999;
  content: " ";
  float: right;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  border-left-color: #cccccc;
  margin-top: 5px;
  margin-right: -10px;
}

.dropdown-submenu:hover>a:after {
  border-left-color: #ffffff;
}

.dropdown-submenu.pull-left {
  float: none;
}

.dropdown-submenu.pull-left>.dropdown-menu {
  left: -100%;
  margin-left: 10px;
  -webkit-border-radius: 6px 0 6px 6px;
  -moz-border-radius: 6px 0 6px 6px;
  border-radius: 6px 0 6px 6px;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <!-- Latest compiled and minified CSS -->
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

</head>

<body>

  <div class="collapse navbar-collapse navbar-ex1-collapse">
    <ul class="nav navbar-nav">
      <li class="menu-item ">
        <a href="#">Blog</a>
      </li>
      <li class="menu-item dropdown">
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">About The Tests
            <b class="caret"></b>
          </a>
        <ul class="dropdown-menu">
          <li class="menu-item dropdown dropdown-submenu">
            <a href="#" class="dropdown-toggle" data-toggle="dropdown">Clearing Floats</a>
            <ul class="dropdown-menu">
              <li class="menu-item ">
                <a href="#">Page with comments</a>
              </li>
              <li class="menu-item ">
                <a href="#">Page with comments disabled</a>
              </li>
              <li class="menu-item dropdown dropdown-submenu">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">More</a>
                <ul class="dropdown-menu">
                  <li>
                    <a href="#">3rd level link more options</a>
                  </li>
                  <li>
                    <a href="#">3rd level link</a>
                  </li>
                </ul>
              </li>
            </ul>
          </li>
        </ul>
      </li>
      <li class="menu-item">
        <a href="#">Lorem Ipsum</a>
      </li>
    </ul>
    <ul class="nav navbar-nav navbar-right">
      <li>
        <form class="navbar-search navbar-form" method="get" action="">
          <input type="text" class="form-control" placeholder="Search" name="s">
        </form>
      </li>
      <li>
        <a href="#" title="Subscribe to the RSS feed">
          <i class="icon-rss"> </i>
        </a>
      </li>
    </ul>
  </div>




  <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

  <!-- Latest compiled and minified JavaScript -->
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

</body>




</html>

你知道如何让菜单可见吗?我的错误在哪里?我在元素中设置了更高的z-index,显示是 block 所以我真的不知道如何解决......

提前致谢!

最佳答案

您没有使用正确的悬停选择器。这条规则:

.dropdown-submenu:hover>.dropdown-menu {
  display: block;
  z-index: 9999999;
}

应该有这个选择器(只是 .dropdown:hover 而不是 .dropdown-submenu:hover):

.dropdown:hover > .dropdown-menu {

仅此一项更改就可以使下拉列表正常工作:https://codepen.io/anon/pen/eGVQMm

但是您可能还应该更改其他规则

关于css - 尽管设置了 Z-Index,但子菜单中的下拉菜单不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46619760/

相关文章:

javascript - 使用 jQuery 在 IE 和 Firefox 中获取字体 css 属性不起作用

css - 何时使用 Bootstrap 类属性值 ".embed-responsive-item"?

javascript - 图表不遵守宽度和高度属性

css - 悬停时使 PNG Logo 后面的背景透明(初学者)

javascript - 使用 math.random() 在 jquery 中为 div 设置动画;

html - 如何改变 CSS 中的背景不透明度?

jquery - 如何将 Bootstrap 3 工具提示附加到可拖动元素

html - 在 Bootstrap 响应式设计中堆叠列和图像

jquery - 带有 Bootstrap 开关的 Bootstrap glyphicon

html - 使用 bootstrap 进行文本对齐