I have a Bootstrap dropdown menu. The last li
item is a submenu. How do I get the submenu to dropup while the full menu drops down? Here's the code:
<div class="dropdown">
<a class="inputBarA dropdown-toggle" data-toggle="dropdown" href="#">FILTER</a>
<ul class="dropdown-menu" role="menu" aria-labelledby="dLabel">
<li role="presentation">
<a role="menuitem" href="#">Text</a>
</li>
<li role="presentation">
<label>Label name</label>
<label>Label name</label>
<label class="checkbox">
<input type="checkbox">
Text </label>
<label class="checkbox">
<input type="checkbox">
Text </label>
<label class="checkbox">
<input type="checkbox">
Text </label>
<label class="checkbox">
<input type="checkbox">
Text </label>
</li>
<li class="dropdown-submenu">
<a tabindex="-1" href="#">Centralities</a>
<ul class="dropdown-menu">
<label class="radio">
<input type="radio" name="options" id="optionsRadios1" value="A" checked>
AA </label>
<label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="B">
BB </label><label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="C">
CC </label><label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="D">
DD </label><label class="radio">
<input type="radio" name="options" id="optionsRadios2" value="E">
EE </label>
</ul>
</li>
</ul>
</div>
Use a class, like up
<ul class="dropdown up">
Write style of up
.up { bottom:100% !important; top:auto !important; }
Note: Increase bottom as per your button size.
The best solution:
It's a native class in bootstrap. The bootstrap (using 3.1.1) css file has a
.dropup .dropdown-menu
selector so that's how I found out.The above code is correct, but doesn't work unless a parent element has the position property set.
Examples that works are
class="col-lg-12"
or justI use Bootstrap v3.0.0.
It sounds like the answer below would be how to do it from scratch, I was unaware there was a dropup class in Bootstrap...
So the short Bootstrap answer is to apply the class "dropup" to the
<ul>
in earlier versions of bootstrap:However in newer versions of bootstrap (v3) the "dropup" class needs to be applied to the
<ul>
's container instead of the the<ul>
itself:See http://jsfiddle.net/ZgyZP/5/
Original working answer that doesn't use bootstrap:
You could use javascript to calculate the height of the submenu and then negatively offset the submenu's position.
something like (with jQuery):
Fiddle: http://jsfiddle.net/ZgyZP/4/
I used the dropup Class, and it worked perfectly as i expected it.