2017-03-06 48 views
0

自學成熟的新手在這裏使用Bootstrap 3 latest。我有一個令我困惑的問題。預先感謝您的時間。引導3摺疊導航欄在展開時不保持可見,但在懸停時可見

正如標題所示,導航欄在移動/更小的屏幕尺寸上完美摺疊,按鈕看起來像預期的一樣,我可以擴展它。但點擊後,下拉菜單突然出現,然後消失。當我將鼠標懸停在閃動的區域上時,navmenu鏈接(及其下拉列表)可見且可點擊。該問題在多個瀏覽器中仍然存在。

我已經嘗試了一些類似的主題上SO建議的導航欄摺疊解決方案,但無濟於事(例如更新jQuery/bootstrap .js文件,雙重檢查data-target屬性,雙重檢查鏈接的java腳本等)。

不知道我在哪裏搞錯了。我很欣賞任何反饋,因爲我正在努力學習。提前致謝!

/*NavBar Gray on Blue*/ 
 

 
.navbar { 
 
    margin-bottom: 0; 
 
} 
 

 
.navbar-inverse { 
 
    background: #004a99; 
 
    border: 0; 
 
} 
 

 
.dropdown-menu { 
 
    background: #004a99; 
 
    border-radius: 0; 
 
    border: 0; 
 
} 
 

 
.navbar-inverse .navbar-brand { 
 
    color: #f2f2f2; 
 
} 
 

 
.navbar-inverse .navbar-brand:hover { 
 
    color: #004a99; 
 
} 
 

 
.navbar-inverse .navbar-nav li a { 
 
    color: #f2f2f2; 
 
    font-size: 16px; 
 
} 
 

 
.navbar-inverse .navbar-nav li a:hover { 
 
    background: #004a99; 
 
} 
 

 
.navbar-inverse .navbar-nav .dropdown-menu li a:hover { 
 
    background: #f2f2f2; 
 
    color: #004a99; 
 
} 
 

 
.navbar .nav>li.dropdown.open.active>a:hover, 
 
.navbar .nav>li.dropdown.open>a { 
 
    color: #004a99; 
 
    background-color: #f2f2f2; 
 
    border-color: #fff; 
 
} 
 

 
.dropdown-menu li a { 
 
    padding: 10px; 
 
} 
 

 
.navbar-brand { 
 
    padding: 0px; 
 
} 
 

 
.navbar-brand>img { 
 
    height: 100%; 
 
    padding: 0px; 
 
    width: auto; 
 
} 
 

 
.navbar-nav.navbar-center { 
 
    position: absolute; 
 
    left: 50%; 
 
    transform: translatex(-50%); 
 
}
<head> 
 
    <meta charset="utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
    <title>title</title> 
 
    <!--Java and Links--> 
 
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
    <!-- 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"> 
 

 
    <!-- Optional theme --> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> 
 

 
    <!-- 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> 
 
    <link href="https://fonts.googleapis.com/css?family=Merriweather|Raleway:400,500,600,800" rel="stylesheet" type="text/css"> 
 
    <link rel="shortcut icon" href="/img/favicon.ico" /> 
 

 

 
    <body> 
 
    <!--NavBar--> 
 
    <nav class="navbar navbar-inverse navbar-static-top sans-serif"> 
 
     <div class="container-fluid"> 
 
     <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> 
 
         <span class="sr-only">Toggle navigation</span> 
 
         <span class="icon-bar"></span> 
 
         <span class="icon-bar"></span> 
 
         <span class="icon-bar"></span> 
 
        </button> 
 
      <!--NavBar Logo<a class="navbar-brand" href="#"><img src="/img/navlogo.png" alt="Logo"></a>//--> 
 
     </div> 
 
     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
 
      <ul class="nav navbar-nav navbar-center"> 
 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">text.<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
       <li><a href="#">text</a></li> 
 
       <!--<li><a href="#">text</a></li>//--> 
 
       </ul> 
 
      </li> 
 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">text<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
       <li><a href="#">text</a></li> 
 
       <li><a href="#">text</a></li> 
 
       </ul> 
 
      </li> 
 
      <li><a href="#">text</a></li> 
 
      </ul> 
 
     </div> 
 
     </div> 
 
    </nav> 
 
    </body>

回答

0

的問題是.navbar中心變換。您可以通過只應用中心上更大的寬度修復:

@media (min-width: 768px) { 
.navbar-nav.navbar-center{ 
    position: absolute; 
    left: 50%; 
    transform: translatex(-50%); 
    } 
} 

Codeply Demo

+0

男人,這個社區是合法的!謝謝,湯姆,這工作得很好! Mawcel的回答改善了它,但並不是完整的解決方案。 – amsid

+0

問題:爲什麼最小寬度是768px,是最小的設備寬度? – amsid

+0

是的,就是當Bootstrap導航欄垂直堆疊時。 –

0

當事情出錯嘗試回到簡單,然後從那裏工作!

這是你的工作藍色導航欄:

.container-fluid .navbar-header, #bs-example-navbar-collapse-1, .navbar-in 
 
verse button.navbar-toggle, .navbar-inverse button.navbar-toggle:focus, .navbar-inverse button.navbar-toggle:hover{ 
 
    background-color: #004a99; 
 
} 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
 
    <title>title</title> 
 
    <!--Java and Links--> 
 
    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> 
 
    <!-- 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"> 
 

 
    <!-- Optional theme --> 
 
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous"> 
 

 
    <!-- 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> 
 
    <link href="https://fonts.googleapis.com/css?family=Merriweather|Raleway:400,500,600,800" rel="stylesheet" type="text/css"> 
 
    <link rel="shortcut icon" href="/img/favicon.ico" /> 
 

 

 
    <body> 
 
    <!--NavBar--> 
 
    <nav class="navbar navbar-inverse navbar-static-top sans-serif"> 
 
     <div class="container-fluid"> 
 
     <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false"> 
 
         <span class="sr-only">Toggle navigation</span> 
 
         <span class="icon-bar"></span> 
 
         <span class="icon-bar"></span> 
 
         <span class="icon-bar"></span> 
 
        </button> 
 
      <!--NavBar Logo<a class="navbar-brand" href="#"><img src="/img/navlogo.png" alt="Logo"></a>//--> 
 
     </div> 
 
     <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> 
 
      <ul class="nav navbar-nav navbar-center"> 
 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">text.<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
       <li><a href="#">text</a></li> 
 
       <!--<li><a href="#">text</a></li>//--> 
 
       </ul> 
 
      </li> 
 
      <li class="dropdown"> 
 
       <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">text<span class="caret"></span></a> 
 
       <ul class="dropdown-menu"> 
 
       <li><a href="#">text</a></li> 
 
       <li><a href="#">text</a></li> 
 
       </ul> 
 
      </li> 
 
      <li><a href="#">text</a></li> 
 
      </ul> 
 
     </div> 
 
     </div> 
 
    </nav> 
 
    </body>

如果你想知道爲什麼我需要指定button之前navbar-toglle它是讓我的選擇不是由自舉提供了一個更具體的。一定要記住,boostrap可以有非常精確的選擇器,所以檢查元素找到已經由boostrap應用的樣式,然後採取相同的選擇器,並找到一種方式來指定它,就像我在這裏所做的那樣

+0

啊gotcha,謝謝你的提示!是的,我不知道選擇器引導程序有時使用什麼。你的意思是「檢查元素」,就像在瀏覽器窗口中的右鍵單擊選項一樣? – amsid