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