2015-09-05 27 views
1

我試圖做一個垂直導航欄中的引導,像類似於大綱:如何使Bootstrap下拉菜單總是像移動版本一樣運行?

  • 項目(下拉菜單)
    • 項目1
    • 項目2
    • 項目3
  • 其他

我有垂直導航欄工作,感謝(http://www.jonathanbriehl.com/2014/01/17/vertical-menu-for-bootstrap-3/)。

但是,這是我試圖改變的下拉菜單。我不想讓下拉菜單「彈出」,而是點擊「項目」展開,並用項目編號顯示大綱的下一級。

它已經用於小型移動屏幕;下拉菜單會在菜單內用縮進來展開。我希望它能爲大屏幕做同樣的事情。

請注意,我並非試圖讓整個導航菜單總是摺疊,而是要展開下拉菜單而不彈出。

我很喜歡基本的Bootstrap,並且最終會自定義CSS。我認爲我想要做什麼需要定製的Javascript。我只想更改導航欄的下拉菜單,而不是整個導航欄。

這是相關的HTML代碼:

<div class="row"> 
     <div class="col-sm-3"> 
     <div class="sidebar-nav"> 

      <div class="navbar navbar-default" role="navigation"> 
      <div class="navbar-header"> 
       <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-navbar-collapse"> 
       <span class="sr-only">Toggle navigation</span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       <span class="icon-bar"></span> 
       </button> 
       <span class="visible-xs navbar-brand">small screen nav</span> 
      </div> 
      <div class="navbar-collapse collapse sidebar-navbar-collapse"> 
       <ul class="nav navbar-nav"> 
       <li class="active"><a href="#">About</a></li> 
       <li><a href="#">Projects</a></li> 
       <li class="dropdown"> 
        <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown<b class="caret"></b></a> 
        <ul class="dropdown-menu"> 
        <li><a href="#">Internships</a></li> 
        <li><a href="#">Coursework</a></li> 
        <li><a href="#">Resume</a></li> 
        </ul> 
       </li> 
       <li><a href="#">Resume</a></li> 
       <li><a href="#">Contact</a></li> 
       </ul> 
      </div><!--/.nav-collapse --> 
      </div> 
     </div> 
     </div> 
     <div class="col-sm-9"> 
     Main content goes here 
     </div> 
    </div> 

感謝。 (我會發布照片,但我是一個新用戶,非常初學者,所以很難找到我可以回答的問題)。

+0

請看看這個頁面:[鏈接] [1] [1]:http://stackoverflow.com/questions/23597897/twitter- bootstrap-how-to-achieve-an-always-collapsed-navbar-dropdown-menu – Danko

+0

是否有一個原因,你不想只使用側欄菜單,但保持標準的Bootstrap移動? – vanburen

+0

我不確定你的意思是@vanburenx。我喜歡Bootstrap崩潰我創建的垂直導航欄的方式,所以我想保留它。我希望下拉功能在大屏幕設置中的功能與它在Bootstrap mobile中的功能相同。 – cgt

回答

2

我認爲這是你想要完成的。

.navbar-default .navbar-nav li { 
 
    display: inline; 
 
    float: none; 
 
} 
 
@media (min-width: 768px) { 
 
    .navbar.navbar-default { 
 
    background: transparent; 
 
    border: none; 
 
    border-right: 1px solid #f5f5f5; 
 
    } 
 
    .navbar-default .navbar-nav .open .dropdown-menu { 
 
    position: static; 
 
    float: none; 
 
    width: auto; 
 
    margin-top: 0; 
 
    background-color: transparent; 
 
    border: 0; 
 
    -webkit-box-shadow: none; 
 
    box-shadow: none; 
 
    } 
 
    .navbar-default .navbar-nav .open .dropdown-menu .dropdown-header, 
 
    .navbar-default .navbar-nav .open .dropdown-menu>li>a { 
 
    padding: 5px 15px 5px 25px; 
 
    } 
 
    .navbar-default .navbar-nav .open .dropdown-menu>li>a { 
 
    line-height: 20px; 
 
    } 
 
    .navbar-default .navbar-nav .open .dropdown-menu>li>a:focus, 
 
    .navbar-default .navbar-nav .open .dropdown-menu>li>a:hover { 
 
    background-image: none; 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet" /> 
 
<div class="container"> 
 
    <div class="row"> 
 
    <div class="col-xs-12"> 
 
     <h1>Header</h1> 
 

 
    </div> 
 
    </div> 
 
    <div class="row"> 
 
    <div class="col-sm-4"> 
 
     <div class="sidebar-nav"> 
 
     <div class="navbar navbar-default" role="navigation"> 
 
      <div class="navbar-header"> 
 
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".sidebar-navbar-collapse"> <span class="sr-only">Toggle navigation</span> 
 
       <span class="icon-bar"></span> 
 
       <span class="icon-bar"></span> 
 
       <span class="icon-bar"></span> 
 

 
      </button> <span class="visible-xs navbar-brand">Sidebar menu</span> 
 

 
      </div> 
 
      <div class="navbar-collapse collapse sidebar-navbar-collapse"> 
 
      <ul class="nav navbar-nav"> 
 
       <li class="active"><a href="#">Menu Item 1 with a really long name that may or may not wrap</a> 
 

 
       </li> 
 
       <li><a href="#">Menu Item 2</a> 
 

 
       </li> 
 
       <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown">Dropdown <b class="caret"></b></a> 
 

 
       <ul class="dropdown-menu"> 
 
        <li><a href="#">Action</a> 
 

 
        </li> 
 
        <li><a href="#">Another action</a> 
 

 
        </li> 
 
        <li><a href="#">Something else here</a> 
 

 
        </li> 
 
        <li class="divider"></li> 
 
        <li class="dropdown-header">Nav header</li> 
 
        <li><a href="#">Separated link</a> 
 

 
        </li> 
 
        <li><a href="#">One more separated link</a> 
 

 
        </li> 
 
       </ul> 
 
       </li> 
 
       <li><a href="#">Menu Item 4</a> 
 

 
       </li> 
 
       <li><a href="#">Reviews <span class="badge">1,118</span></a> 
 

 
       </li> 
 
      </ul> 
 
      </div> 
 
      <!--/.nav-collapse --> 
 
     </div> 
 
     </div> 
 
    </div> 
 
    <div class="col-sm-8"> 
 
     <p>This is a demo for the article orignally posted on my <a href="http://www.jonathanbriehl.com/2014/01/17/vertical-menu-for-bootstrap-3/" target="_blank">blog</a>. Enjoy.</p> 
 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dui ante, dictum vitae eros ut, consectetur placerat mi. Nam malesuada ante et malesuada scelerisque. Donec id lorem eu mi laoreet dictum. Vivamus luctus vel diam sed mollis. Integer vitae 
 
     justo egestas, viverra nunc id, malesuada turpis. Pellentesque mattis est id interdum rutrum. Praesent luctus mi eget sapien ultrices pellentesque. Aliquam est urna, accumsan vel tempor sit amet, malesuada ut sapien.</p> 
 
     <p>Maecenas ac consequat orci. Aliquam dignissim, erat accumsan tempus venenatis, est lacus adipiscing sapien, non sagittis ligula est nec neque. Fusce malesuada velit vitae velit dapibus tincidunt. Pellentesque habitant morbi tristique senectus et 
 
     netus et malesuada fames ac turpis egestas. Sed dui massa, semper non vulputate ut, ornare et ante. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris arcu, posuere at porttitor et, consequat in 
 
     orci. Pellentesque et sem semper, adipiscing libero sit amet, suscipit purus. Nulla tincidunt, ante sed eleifend viverra, arcu dui commodo diam, sit amet commodo purus ante et nibh. Fusce interdum tortor eu lectus suscipit posuere ac ac enim. 
 
     Curabitur vel nisl sed metus tristique malesuada a nec tellus. Fusce nisl lectus, pharetra a lacus adipiscing, accumsan viverra dui. Sed bibendum arcu a accumsan malesuada.</p> 
 
     <p>Proin faucibus sed mauris vel pretium. Morbi ultrices sem quam, nec elementum nisl placerat vel. In ut sapien ut orci malesuada dapibus ac in sem. Quisque consectetur nisl nec pulvinar consequat. Ut mi dui, pellentesque quis aliquam et, posuere 
 
     id dolor. In pharetra risus ut felis sodales condimentum. Cras eleifend elit sit amet nisi sagittis, vitae sollicitudin sapien viverra. Fusce ac mattis diam, ornare molestie nibh. Ut non auctor justo, vel consequat justo. Etiam volutpat orci nec 
 
     ligula suscipit, non sollicitudin ipsum ullamcorper.</p> 
 
     <p>Donec tempor elit in ultrices faucibus. Praesent ut tincidunt arcu. Praesent ac venenatis nunc. Duis non tempor sem, in bibendum neque. Integer nec ante sed nisi commodo pulvinar. Nam vulputate lectus id eleifend facilisis. Interdum et malesuada 
 
     fames ac ante ipsum primis in faucibus. Ut arcu leo, rhoncus ac felis et, suscipit tincidunt urna. Sed auctor justo mauris, ut eleifend mauris volutpat a. Suspendisse non egestas ipsum. Phasellus est libero, semper a dui congue, accumsan ultrices 
 
     nibh. Sed convallis purus at neque scelerisque, nec vulputate sem interdum. Vivamus tempor faucibus ante, sit amet eleifend quam feugiat non. Ut id velit in diam volutpat vehicula ac vitae ante. Suspendisse aliquet accumsan ipsum.</p> 
 
     <p>Phasellus laoreet rhoncus fermentum. Aenean scelerisque urna in lorem pellentesque, in consequat velit placerat. Praesent id suscipit magna, quis dignissim elit. Vestibulum at sem pharetra, tempus enim a, adipiscing lacus. Aliquam erat volutpat. 
 
     Nullam lorem risus, ultricies a purus a, pretium condimentum est. Vestibulum pulvinar euismod est nec pharetra. Praesent vitae viverra ipsum. Nullam auctor nibh nec fermentum tincidunt. Mauris ullamcorper risus felis, nec fringilla justo lacinia 
 
     vel. Nam sollicitudin venenatis lectus hendrerit luctus. Vestibulum in lectus sit amet risus placerat fermentum eu vitae nisl. Cras massa nulla, accumsan at diam in, varius auctor massa. Vivamus bibendum, nulla id viverra convallis, sem sapien 
 
     eleifend erat, quis consequat neque ipsum vel est.</p> 
 
     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed dui ante, dictum vitae eros ut, consectetur placerat mi. Nam malesuada ante et malesuada scelerisque. Donec id lorem eu mi laoreet dictum. Vivamus luctus vel diam sed mollis. Integer vitae 
 
     justo egestas, viverra nunc id, malesuada turpis. Pellentesque mattis est id interdum rutrum. Praesent luctus mi eget sapien ultrices pellentesque. Aliquam est urna, accumsan vel tempor sit amet, malesuada ut sapien.</p> 
 
     <p>Maecenas ac consequat orci. Aliquam dignissim, erat accumsan tempus venenatis, est lacus adipiscing sapien, non sagittis ligula est nec neque. Fusce malesuada velit vitae velit dapibus tincidunt. Pellentesque habitant morbi tristique senectus et 
 
     netus et malesuada fames ac turpis egestas. Sed dui massa, semper non vulputate ut, ornare et ante. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus mauris arcu, posuere at porttitor et, consequat in 
 
     orci. Pellentesque et sem semper, adipiscing libero sit amet, suscipit purus. Nulla tincidunt, ante sed eleifend viverra, arcu dui commodo diam, sit amet commodo purus ante et nibh. Fusce interdum tortor eu lectus suscipit posuere ac ac enim. 
 
     Curabitur vel nisl sed metus tristique malesuada a nec tellus. Fusce nisl lectus, pharetra a lacus adipiscing, accumsan viverra dui. Sed bibendum arcu a accumsan malesuada.</p> 
 
     <p>Proin faucibus sed mauris vel pretium. Morbi ultrices sem quam, nec elementum nisl placerat vel. In ut sapien ut orci malesuada dapibus ac in sem. Quisque consectetur nisl nec pulvinar consequat. Ut mi dui, pellentesque quis aliquam et, posuere 
 
     id dolor. In pharetra risus ut felis sodales condimentum. Cras eleifend elit sit amet nisi sagittis, vitae sollicitudin sapien viverra. Fusce ac mattis diam, ornare molestie nibh. Ut non auctor justo, vel consequat justo. Etiam volutpat orci nec 
 
     ligula suscipit, non sollicitudin ipsum ullamcorper.</p> 
 
     <p>Donec tempor elit in ultrices faucibus. Praesent ut tincidunt arcu. Praesent ac venenatis nunc. Duis non tempor sem, in bibendum neque. Integer nec ante sed nisi commodo pulvinar. Nam vulputate lectus id eleifend facilisis. Interdum et malesuada 
 
     fames ac ante ipsum primis in faucibus. Ut arcu leo, rhoncus ac felis et, suscipit tincidunt urna. Sed auctor justo mauris, ut eleifend mauris volutpat a. Suspendisse non egestas ipsum. Phasellus est libero, semper a dui congue, accumsan ultrices 
 
     nibh. Sed convallis purus at neque scelerisque, nec vulputate sem interdum. Vivamus tempor faucibus ante, sit amet eleifend quam feugiat non. Ut id velit in diam volutpat vehicula ac vitae ante. Suspendisse aliquet accumsan ipsum.</p> 
 
     <p>Phasellus laoreet rhoncus fermentum. Aenean scelerisque urna in lorem pellentesque, in consequat velit placerat. Praesent id suscipit magna, quis dignissim elit. Vestibulum at sem pharetra, tempus enim a, adipiscing lacus. Aliquam erat volutpat. 
 
     Nullam lorem risus, ultricies a purus a, pretium condimentum est. Vestibulum pulvinar euismod est nec pharetra. Praesent vitae viverra ipsum. Nullam auctor nibh nec fermentum tincidunt. Mauris ullamcorper risus felis, nec fringilla justo lacinia 
 
     vel. Nam sollicitudin venenatis lectus hendrerit luctus. Vestibulum in lectus sit amet risus placerat fermentum eu vitae nisl. Cras massa nulla, accumsan at diam in, varius auctor massa. Vivamus bibendum, nulla id viverra convallis, sem sapien 
 
     eleifend erat, quis consequat neque ipsum vel est.</p> 
 
    </div> 
 
    </div> 
 
</div> 
 
<!-- /.container -->

+0

謝謝@vanburenx!我沒有意識到所有涉及的類 - 我假設他們覆蓋默認的Bootstrap?「position:static」會改變彈出式功能嗎? – cgt

+0

這些實際上是當視口低於768px時用於菜單的類,所以您現在只是在視口中將這些類用於下拉菜單,而不是僅在移動設備上使用。 – vanburen