Reputation: 71
I want to add a dropdown to the navbar, but ensure that when the browser is resized to a narrower width, the dropdown remains visible in the navbar and is not included in the nav-collapse.
The html below works. However, when the page resizes, the dropdown drops onto the next row, and displays expanded in the navbar, leaving me with a very deep navbar.
I'm calling bootstrap-collapse.js and bootstrap-dropdown.js.
Anyone got any ideas?
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<a class="brand" href="#">Project</a>
<div class="nav-collapse">
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
<li><a href="#contact">Contact</a></li>
</ul>
</div><!--/.nav-collapse -->
<div class="container">
<ul class="nav pull-right">
<li class="divider-vertical"></li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Sharing<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Twitter</a></li>
<li><a href="#">Facebook</a></li>
<li><a href="#">Google+</a></li>
</ul>
</li>
</ul>
</div>
</div>
</div>
</div>
Upvotes: 7
Views: 8517
Reputation: 1106
According to Mark Otto, one of the bootstrap's developers:
All dropdowns within the .nav in the navbar will be affected. Currently we don't offer a way to prevent this behavior.
However, it is possible to have an uncollapsed dropdown in a collapsed navbar. You can accomplish this in one of three ways:
data-no-collapse="true"
) to fix the responsive selectors.class="dropdown-menu-no-collapse"
) to rebuild its styles from the ground up.class="dropdown-menu no-collapse
) to override the responsive styles.I wrote a blog post that explains what to do. The first method requires editing bootstrap-responsive.css
, and the second requires changing bootstrap.css
. You don't have to change any of the bootstrap's CSS for the third method, but it's pretty hard to maintain.
Upvotes: 11
Reputation: 673
It's because the container is padded to the right or something like that. Use margin-right respectively margin-left : -30px; on the rightmost, respectively leftmost unordered list.
Not really pretty, but until they fix it ...
Upvotes: 0