2015-09-05 73 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