2017-10-07 38 views
0

我真的无法理解如何解决此问题。我使用Bootstrap 3,并在顶部添加了一个额外的自定义CSS的子菜单功能。尽管设置了Z-Index,但在子菜单中的下拉菜单不可见

第二级菜单项目只有在子菜单元素的视觉部分是可见的,而不是右边的部分:

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更高,显示是块,所以我真的不知道如何解决...

在此先感谢!

+0

我不能使片段工作... – Micky

+0

它在代码段中正常工作,所以你将必须显示它在上下文中工作 –

+0

看起来像你正面临一些冲突其在片段中工作正常 看看这个屏幕录像 https://www.screencast.com/t/tbEFE7hYuLH – LSKhan

回答

0

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

.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

但可能还有其他的规则,你也应该改变

+0

@joahhnes:我仍然看到不良行为,但是只有删除navbar-nav时才能看到子菜单。任何想法的原因? – Micky

+0

这是不可告诉的 - 您发布的CSS代码中的任何位置都没有'navbar-nav'类,所以我不知道它在页面中的作用。 – Johannes

+0

这是身体下的第一个UL元素,但它非常具有挑战性。我认为这是一个Z指数问题,但事实并非如此......非常奇怪。 – Micky