欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

bootstrap dropdown 2

shiping1 的头像

I'm using bootstrap for the first time and really liking it - but one thing I'd like to do is have my menu automatically drop down on hover over, rather than having to click the menu title. I'd also like to lose the little arrows next to the menu titles.

share|improve this question
 
116 
Just to remind you, making things work on hover and removing cues of dropdowns does not help the users with a touch device. There is no hover on such a device (ipad, iphone, android, etc) I think it's ok if you know where it will be used, but just remember these problems. :) –  Mikko Tapionlinna Jun 6 '12 at 14:38 
25 
   
There is a solution for that, so mikko's answer is correct but covered now with a plugin for specifically that situation. bootstrap-hover-dropdown –  HenryW Sep 4 at 11:43 
1 
This is not a good idea as many touch devices have viewports the same size or larger than desktop and laptop devices. Better to use a touch detection that works for IOS, Android, and Windows Mobile or just stay with clicks. –  Christina Sep 27 at 21:19
up vote185down voteaccepted

I created a pure on hover dropdown menu based on the latest (v2.0.2) bootstrap framework that has support for multiple submenus and thought i'd post it for future users:

CSS

.sidebar-nav {
    padding: 9px 0;
}

.dropdown-menu .sub-menu {
    left: 100%;
    position: absolute;
    top: 0;
    visibility: hidden;
    margin-top: -1px;
}

.dropdown-menu li:hover .sub-menu {
    visibility: visible;
}

.dropdown:hover .dropdown-menu {
    display: block;
}

.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu, .navbar .dropdown-menu {
    margin-top: 0;
}

.navbar .sub-menu:before {
    border-bottom: 7px solid transparent;
    border-left: none;
    border-right: 7px solid rgba(0, 0, 0, 0.2);
    border-top: 7px solid transparent;
    left: -7px;
    top: 10px;
}
.navbar .sub-menu:after {
    border-top: 6px solid transparent;
    border-left: none;
    border-right: 6px solid #fff;
    border-bottom: 6px solid transparent;
    left: 10px;
    top: 11px;
    left: -6px;
}

Demo

share|improve this answer
 
12 
it's a design decision in bootstrap to do not open the dropdowns on hover event... –  caarlos0 Aug 28 '12 at 17:02
6 
so good! I also removed class="dropdown-toggle" data-toggle="dropdown" so that only hovers, not click would trigger the menu. Note that when you're using responsive styles, the menus still get swept into the little button at top right, which is still triggered by a click. Big Thanks! –  memeLab Jan 28 '13 at 6:23
2 
This Demo link now references working bootstrap css url: jsfiddle.net/2Smgv/3100 –  wal5hy Oct 2 '13 at 12:20 
1 
@wal5hy I'll edit that into the post. –  Nightfirecat Oct 17 '13 at 22:14
   
To avoid the auto drop down on smaller devices (such as phones) and aonly allow it as of a min-width of e.g. 768px do @media (min-width: 768px) {.dropdown-menu li:hover .sub-menu {visibility: visible;}} and @media (min-width: 768px) {.dropdown:hover .dropdown-menu {display: block;}} –  ChrisAelbrecht Oct 31 '13 at 8:50 

To get the menu to automatically drop on hover then this can achieved using basic CSS. You need to work out the selector to the hidden menu option and then set it to display as block when the appropriate li tag is hovered over. Taking the example from the twitter bootstrap page, the selector would be as follows:

ul.nav li.dropdown:hover > ul.dropdown-menu {
    display: block;    
}

To hide the arrow (caret) this is done in different ways depending on whether you are using Twitter Bootstrap version 2 and lower or version 3:

Bootstrap 3

To remove the caret in version 3 you just need to remove the HTML <b class="caret"></b> from the .dropdown-toggle anchor element:

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

Bootstrap 2 & lower

To remove the caret in version 2 you need a little more insight into CSS and I suggest looking at how the:after pseudo element works in more detail. To get you started on your way to understanding, to target and remove the arrows in the twitter bootstrap example, you would use the following CSS selector and code:

a.menu:after, .dropdown-toggle:after {
    content: none;
}

It will work in your favour if you look further into how these work and not just use the answers that I have given you.

Thanks to @CocaAkat for pointing out that we were missing the ">" child combinator to prevent sub menus being shown on the parent hover

share|improve this answer
 
49 
Also had to add margin: 0;, otherwise the 1px margin above .dropdown-menu causes buggy behavior.–  SalmanPK Aug 18 '12 at 18:46
7 
Simple solution, but the parent link is still not clickable. I'm using latest bootstrap with roots theme. –  KrunalSep 14 '12 at 12:46
2 
Note: Yes it does - this will work in any browser that twitter bootstrap supports. @GeorgeEdison This is basic CSS - what part would not be supported by IE8? If you are having problems, post a question, not misleading comments. –  My Head Hurts Sep 25 '12 at 6:42 
3 
@MyHeadHurts: After some further research - turns out this was indeed a Bootstrap bug and it was only fixed five days ago. –  Nathan Osman Sep 25 '12 at 18:09
1 
@Krunal to be able to click the link, you must remove the data-toggle="dropdown" attribute. – Raúl Ferràs Aug 28 '13 at 21:40

In addition to the answer from "My Head Hurts" (which was great):

ul.nav li.dropdown:hover ul.dropdown-menu{
    display: block;    
}

There are 2 lingering issues:

  1. Clicking on the dropdown link will open the dropdown-menu. And it will stay open unless the user clicks somewhere else, or hovers back over it, creating an awkward UI.
  2. There is a 1px margin between the dropdown link, and dropdown-menu. This causes the dropdown-menu to become hidden if you move slowly between the dropdown and dropdown-menu.

The solution to (1) is removing the "class" and "data-toggle" elements from the nav link

<a href="#">
     Dropdown
     <b class="caret"></b>
</a>

This also gives you the ability to create a link to your parent page - which wasn't possible with the default implementation. You can just replace the "#" with whatever page you want to send the user.

The solution to (2) is removing the margin-top on the .dropdown-menu selector

.navbar .dropdown-menu {
 margin-top: 0px;
}
share|improve this answer
 
1 
+1 Excellent additional information. I hadn't checked my answer against the Twitter bootstrap Javascript functionality (or tested the CSS in such detail) and the OP never provided any feedback to my answer. I think this will prove to be very helpful answer :) –  My Head Hurts Feb 26 '12 at 16:39 
13 
To fix the deliberate click, I just removed the data-toggle="dropdown" attribute, which seemed to work. –  Anthony Briggs Mar 14 '12 at 5:29
3 
Solution (2) for nav-pill buttons: .nav-pills .dropdown-menu { margin-top: 0px; } –  Loren Aug 23 '12 at 15:22 
1 
To fix the problem I noted above li.dropdown:hover > ul.dropdown-menu –  Archimedes Trajano Apr 3 '13 at 18:49
1 
removing "class" and "data-toggle" attributes from nav links make it stop working fine in mobile and tablets :(–  Mosijava May 28 at 5:38

I've used a bit of jQuery :::

//Add Hover effect to menus
jQuery('ul.nav li.dropdown').hover(function() {
  jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn();
}, function() {
  jQuery(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut();
});
share|improve this answer
 
8 
Like this. Am using JQuery anyway with the Bootstrap stuff and still allows for the default 'click' functionality in touchscreen devices. –  Duck in Custard Jan 29 '13 at 14:00
   
Used this. I like that it still allows the click functionality as well, for mobiles, but for desktops the hover is perfect. –  Stuart Jan 13 at 9:02
   
I used this but also extended it to be useable for dropdowns that are not in a nav. I add class dropdown-hover to the btn-group div and used this jQuery finder $('ul.nav li.dropdown, .dropdown-hover').hover(function() {. Thanks! –  Brandon Apr 20 at 22:53

[Update] The plugin is on GitHub and I am working on some improvements (like use only with data-attributes (no JS necessary). I've leaving the code in below, but it's not the same as what's on GitHub.

I liked the purely CSS version, but it's nice to have a delay before it closes, as it's usually a better user experience (i.e. not punished for a mouse slip that goes 1 px outside the dropdown, etc), and as mentioned in the comments, there's that 1px of margin you have to deal with or sometimes the nav closes unexpectedly when you're moving to the dropdown from the original button, etc.

I created a quick little plugin that I've used on a couple sites and it's worked nicely. Each nav item is independently handled, so they have their own delay timers, etc.

JS

// outside the scope of the jQuery plugin to
// keep track of all dropdowns
var $allDropdowns = $();

// if instantlyCloseOthers is true, then it will instantly
// shut other nav items when a new one is hovered over
$.fn.dropdownHover = function(options) {

    // the element we really care about
    // is the dropdown-toggle's parent
    $allDropdowns = $allDropdowns.add(this.parent());

    return this.each(function() {
        var $this = $(this).parent(),
            defaults = {
                delay: 500,
                instantlyCloseOthers: true
            },
            data = {
                delay: $(this).data('delay'),
                instantlyCloseOthers: $(this).data('close-others')
            },
            options = $.extend(true, {}, defaults, options, data),
            timeout;

        $this.hover(function() {
            if(options.instantlyCloseOthers === true)
                $allDropdowns.removeClass('open');

            window.clearTimeout(timeout);
            $(this).addClass('open');
        }, function() {
            timeout = window.setTimeout(function() {
                $this.removeClass('open');
            }, options.delay);
        });
    });
};  

The delay parameter is pretty self explanatory, and the instantlyCloseOthers will instantly close all other dropdowns that are open when you hover over a new one.

Not pure CSS, but hopefully will help someone else at this late hour (i.e. this is an old thread).

If you want, you can see the different processes I went through (in a discussion on the #concrete5IRC) to get it to work via the different steps in this gist: https://gist.github.com/3876924

The plugin pattern approach is much cleaner to support individual timers, etc.

See the blog post for more.

share|improve this answer
 

Simply customize your CSS style in two lines

.dropdown:hover .dropdown-menu {
   display: block;
}
share|improve this answer
 

There are a lot of really good solutions here. But I thought that I would go ahead and put mine in here as another alternative. It's just a simple jQuery snippet that does it the way bootstrap would if it supported hover for dropdowns instead of just click. I've only tested this with version 3 so I don't know if it would work with version 2. Save it as a snippet in your editor and have it at the stroke of a key.

<script>
    $(function() {
        $(".dropdown").hover(
            function(){ $(this).addClass('open') },
            function(){ $(this).removeClass('open') }
        );
    });
</script>

Basically, It's just saying when you hover on the dropdown class, it will add the open class to it. Then it just works. When you stop hovering on either the parent li with the dropdown class or the child ul/li's, it removes the open class. Obviously, this is only one of many solutions, and you can add to it to make it work on only specific instances of .dropdown. Or add a transition to either parent or child.

share|improve this answer
 
   
Great solution! I also removed data-toggle="dropdown" attribute from link in order to make top link clickable. – Sergey Jun 18 at 12:18
   
That's a good tip Sergey. I always make sure the top link goes nowhere so that it works on tablets and phones as well. –  stereoscience Aug 25 at 19:14

Even better with jQuery:

jQuery('ul.nav li.dropdown').hover(function() {
  jQuery(this).find('.dropdown-menu').stop(true, true).show();
  jQuery(this).addClass('open');
}, function() {
  jQuery(this).find('.dropdown-menu').stop(true, true).hide();
  jQuery(this).removeClass('open');
});
share|improve this answer
 
3 
I changed your code to jQuery('ul.nav li.dropdown').hover(function() { jQuery(this).closest('.dropdown-menu').stop(true, true).show(); jQuery(this).addClass('open'); }, function() { jQuery(this).closest('.dropdown-menu').stop(true, true).hide(); jQuery(this).removeClass('open'); }); so the submenu won't be displayed on hover. –  farjam Sep 6 '12 at 2:34 
1 
THX, especially with latest 2.3 release –  Michael Sep 26 '12 at 20:26

I've managed it as follows : 

$('ul.nav li.dropdown').hover(function(){
       $(this).children('ul.dropdown-menu').slideDown(); 
    }, function(){
       $(this).children('ul.dropdown-menu').slideUp(); 
});

hope this helps someone...

share|improve this answer
 

Just want to add, that if you have multiple dropdowns (as I do) you should write:

ul.nav li.dropdown:hover > ul.dropdown-menu {
    display: block;    
}

And it'll work properly.

share|improve this answer
 
   
My .dropdown-menu had margin: 2px 0 0; which meant a slow mouseEnter from above hid the menu prematurely. ul.dropdown-menu{ margin-top: 0; } –  Alastair Apr 26 '13 at 16:02 

The best way of doing it is to just trigger bootstraps click event with a hover. This way, it should still remain touch device friendly

$('.dropdown').hover(function(){ 
  $('.dropdown-toggle', this).trigger('click'); 
});
share|improve this answer
 

This is probably a stupid idea, but to just remove the arrow pointing down, you can delete the

<b class="caret"></b>

This does nothing for the up pointing one, though..

share|improve this answer
 

i my opinion the best way is like this.

;(function($, window, undefined) {
    // outside the scope of the jQuery plugin to
    // keep track of all dropdowns
    var $allDropdowns = $();

    // if instantlyCloseOthers is true, then it will instantly
    // shut other nav items when a new one is hovered over
    $.fn.dropdownHover = function(options) {

        // the element we really care about
        // is the dropdown-toggle's parent
        $allDropdowns = $allDropdowns.add(this.parent());

        return this.each(function() {
            var $this = $(this),
                $parent = $this.parent(),
                defaults = {
                    delay: 500,
                    instantlyCloseOthers: true
                },
                data = {
                    delay: $(this).data('delay'),
                    instantlyCloseOthers: $(this).data('close-others')
                },
                settings = $.extend(true, {}, defaults, options, data),
                timeout;

            $parent.hover(function(event) {
                // so a neighbor can't open the dropdown
                if(!$parent.hasClass('open') && !$this.is(event.target)) {
                    return true;
                }

                if(settings.instantlyCloseOthers === true)
                    $allDropdowns.removeClass('open');

                window.clearTimeout(timeout);
                $parent.addClass('open');
            }, function() {
                timeout = window.setTimeout(function() {
                    $parent.removeClass('open');
                }, settings.delay);
            });

            // this helps with button groups!
            $this.hover(function() {
                if(settings.instantlyCloseOthers === true)
                    $allDropdowns.removeClass('open');

                window.clearTimeout(timeout);
                $parent.addClass('open');
            });

            // handle submenus
            $parent.find('.dropdown-submenu').each(function(){
                var $this = $(this);
                var subTimeout;
                $this.hover(function() {
                    window.clearTimeout(subTimeout);
                    $this.children('.dropdown-menu').show();
                    // always close submenu siblings instantly
                    $this.siblings().children('.dropdown-menu').hide();
                }, function() {
                    var $submenu = $this.children('.dropdown-menu');
                    subTimeout = window.setTimeout(function() {
                        $submenu.hide();
                    }, settings.delay);
                });
            });
        });
    };

    $(document).ready(function() {
        // apply dropdownHover to all elements with the data-hover="dropdown" attribute
        $('[data-hover="dropdown"]').dropdownHover();
    });
})(jQuery, this);

sample markup:

<li class="dropdown">
    <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-delay="1000" data-close-others="false">
        Account <b class="caret"></b>
    </a>
    <ul class="dropdown-menu">
        <li><a tabindex="-1" href="#">My Account</a></li>
        <li class="divider"></li>
        <li><a tabindex="-1" href="#">Change Email</a></li>
        <li><a tabindex="-1" href="#">Change Password</a></li>
        <li class="divider"></li>
        <li><a tabindex="-1" href="#">Logout</a></li>
    </ul>
</li>
share|improve this answer
 
2 
This is Cameron Spear's work, thought I'd give him the shoutout: cameronspear.com/blog/bootstrap-dropdown-on-hover-plugin –  kelpie Jan 9 at 10:49 

Also added margin-top:0 to reset the bootstrap css margin for .dropdown-menu so the menu list dosen't dissapear when the user hovers slowly from drop down menu to the menu list.

ul.nav li.dropdown:hover > ul.dropdown-menu {
    display: block;    
}

.nav .dropdown-menu {
    margin-top: 0;
}
share|improve this answer
 
   
this is the correct answer, bootstrap is ready for hover on dropdown, if the mouse doesn't go outside of dropdown menu. Removing margin-top allow to go from link to menu without break and so without auto-close of the menu. And this solution allow to keep the correct behavior for touch devices –  Nicolas Janel Sep 9 at 8:21

This will hide the up ones

.navbar .dropdown-menu:before {
   display:none;
}
.navbar .dropdown-menu:after {
   display:none;
}
share|improve this answer
 

Jquery solution is good but it will need to either deal with on click events (for mobile or tablet) as hover won't work properly... Could maybe do some window re-size detection?

Andres Ilich's answer from above seems to work well but should be wrapped in a media query:

@media (min-width: 980px) {

.dropdown-menu .sub-menu {
    left: 100%;
    position: absolute;
    top: 0;
    visibility: hidden;
    margin-top: -1px;
}

.dropdown-menu li:hover .sub-menu {
    visibility: visible;
}

.dropdown:hover .dropdown-menu {
    display: block;
}

.nav-tabs .dropdown-menu, .nav-pills .dropdown-menu, .navbar .dropdown-menu {
    margin-top: 0;
}

.navbar .sub-menu:before {
    border-bottom: 7px solid transparent;
    border-left: none;
    border-right: 7px solid rgba(0, 0, 0, 0.2);
    border-top: 7px solid transparent;
    left: -7px;
    top: 10px;
}
.navbar .sub-menu:after {
    border-top: 6px solid transparent;
    border-left: none;
    border-right: 6px solid #fff;
    border-bottom: 6px solid transparent;
    left: 10px;
    top: 11px;
    left: -6px;
}

}
share|improve this answer
 

This works for Wordpress Bootstrap

.navbar .nav > li > .dropdown-menu:after,
.navbar .nav > li > .dropdown-menu:before {
    content: none;
}
share|improve this answer
 

This should hide the drop downs and their carets if they are smaller than a tablet.

@media (max-width: 768px) {
    .navbar ul.dropdown-menu, .navbar li.dropdown b.caret {
        display: none;
    }
}
share|improve this answer
 

So you have this code:

<a class="dropdown-toggle" data-toggle="dropdown">Show menu</a>

<ul class="dropdown-menu" role="menu">
    <li>Link 1</li>
    <li>Link 2</li> 
    <li>Link 3</li>                                             
</ul>

Normally it works on click event, and you want it work on hover event. This is very simple, just use this javascript/jquery code:

$(document).ready(function () {
    $('.dropdown-toggle').mouseover(function() {
        $('.dropdown-menu').show();
    })

    $('.dropdown-toggle').mouseout(function() {
        t = setTimeout(function() {
            $('.dropdown-menu').hide();
        }, 100);

        $('.dropdown-menu').on('mouseenter', function() {
            $('.dropdown-menu').show();
            clearTimeout(t);
        }).on('mouseleave', function() {
            $('.dropdown-menu').hide();
        })
    })
})

This works very well and here is the explanation: we have a button, and a menu. When we hover the button we display the menu, and when we mouseout of the button we hide the menu after 100ms. If you wonder why i use that, is because you need time to drag the cursor from the button over the menu. When you are on the menu, the time is reset and you can stay there as many time as you want. When you exit the menu, we will hide the menu instantly without any timeout.

I've used this code in many projects, if you encounter any problem using it, feel free to ask me questions.

share|improve this answer
 

If you have an element with a dropdown class like this (for example):

<ul class="list-unstyled list-inline">
    <li class="dropdown">
        <a data-toggle="dropdown" href="#"><i class="fa fa-bars"></i> Dropdown 1</a>
        <ul class="dropdown-menu">
            <li><a href="">Item 1</a></li>
            <li><a href="">Item 2</a></li>
            <li><a href="">Item 3</a></li>
            <li><a href="">Item 4</a></li>
            <li><a href="">Item 5</a></li>
        </ul>
    </li>
    <li class="dropdown">
        <a data-toggle="dropdown" href="#"><i class="fa fa-user"></i> Dropdown 2</a>
        <ul class="dropdown-menu">
            <li><a href="">Item A</a></li>
            <li><a href="">Item B</a></li>
            <li><a href="">Item C</a></li>
            <li><a href="">Item D</a></li>
            <li><a href="">Item E</a></li>
        </ul>
    </li>
</ul>

then you can have the dropdown menu to be automatically drop down on hover over, rather than having to click its title, by using this snippet of jQuery code:

<script>
    $('.dropdown').hover(
        function() {
            $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeIn();
        }, 
        function() {
            $(this).find('.dropdown-menu').stop(true, true).delay(200).fadeOut();
        }
    );

    $('.dropdown-menu').hover(
        function() {
            $(this).stop(true, true);
        },
        function() {
            $(this).stop(true, true).delay(200).fadeOut();
        }
    );
</script>

here is a Demo

This answer relied on @Michael answer, I have made some changes and added some additions to get the dropdown menu work properly

share|improve this answer
 
   
great, thank you –  user1954544 Sep 28 at 10:47

Overwrite bootstrap.js with this script.

jQuery(document).ready(function ($) {
$('.navbar .dropdown').hover(function() {
    $(this).addClass('extra-nav-class').find('.dropdown-menu').first().stop(true, true).delay(250).slideDown();
}, function() {
    var na = $(this)
    na.find('.dropdown-menu').first().stop(true, true).delay(100).slideUp('fast', function(){ na.removeClass('extra-nav-class') })
});

$('.dropdown-submenu').hover(function() {
    $(this).addClass('extra-nav-class').find('.dropdown-menu').first().stop(true, true).delay(250).slideDown();
}, function() {
    var na = $(this)
    na.find('.dropdown-menu').first().stop(true, true).delay(100).slideUp('fast', function(){ na.removeClass('extra-nav-class') })
});

}); 
share|improve this answer
 

Here's my technique that adds a slight delay before the menu is closed after you stop hovering on the menu or the toggle button. The <button> that you would normally click to display the nav menu is #nav_dropdown.

$(function() {
  var delay_close_it, nav_menu_timeout, open_it;
  nav_menu_timeout = void 0;
  open_it = function() {
    if (nav_menu_timeout) {
      clearTimeout(nav_menu_timeout);
      nav_menu_timeout = null;
    }
    return $('.navbar .dropdown').addClass('open');
  };
  delay_close_it = function() {
    var close_it;
    close_it = function() {
      return $('.navbar .dropdown').removeClass('open');
    };
    return nav_menu_timeout = setTimeout(close_it, 500);
  };
  $('body').on('mouseover', '#nav_dropdown, #nav_dropdown *', open_it).on('mouseout', '#nav_dropdown', delay_close_it);
  return $('body').on('mouseover', '.navbar .dropdown .dropdown-menu', open_it).on('mouseout', '.navbar .dropdown .dropdown-menu', delay_close_it);
});
share|improve this answer
 

We saw, In addition to the answer from "My Head Hurts", "Cory Price" found out 2 problems

Problem 1: Clicking on the dropdown link will open the dropdown-menu. And it will stay open unless the user clicks somewhere else, or hovers back over it, creating an awkward UI.

Solution:Remove the "class" and "data-toggle" elements from the nav link

The solution was nearly perfect,but the problem here is, when it comes to mobile devices and tablets, it won't work!

I'm using a bit of jquery to fix this..

    if ( $(window).width() > 769) {
            $('.dropdown-toggle').removeAttr('data-toggle');
            $('.dropdown-menu').removeAttr('style');
            $('.dropdown').removeClass('open');

        }
        $(window).resize(function () {
            if ( $(window).width() > 769) {
                $('.dropdown-toggle').removeAttr('data-toggle');
                $('.dropdown-menu').removeAttr('style');
                $('.dropdown').removeClass('open');
            }
            else    {
                $('.dropdown-toggle').attr("data-toggle","dropdown");

            }
        });

note:Here we assume that the collapse to mobile devices and tablets is from 768px

share|improve this answer
 
1 
This is not a good idea as many touch devices have viewports the same size or larger than desktop and laptop devices. Better to use a touch detection that works for IOS, Android, and Windows Mobile or just stay with clicks. –  Christina Sep 27 at 21:16

protected by Community Apr 14 '12 at 19:04

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site. 

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged    or ask your own question.



来自 http://stackoverflow.com/questions/8878033/how-to-make-twitter-bootstrap-menu-dropdown-on-hover-rath...
普通分类: