skip to Main Content

We have to make a project at school and i want to make this dropdown inside a navbar expand once you hover it. I’ve tried diffrent solutions but so far all I get is a button that requires a click or all the options beneath each other without a dropdown.

<li class="nav-item">
  <div class="dropdown" id="collapsibleNavbar">
    <ul class="navbar-nav">
      <li class="nav-item dropdown">
        <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Category</a>
        <div class="dropdown-menu" aria-labelledby="navbarDropdown">
          <a class="dropdown-item" href="#">Login</a>
          <a class="dropdown-item" href="#">Another action</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="#">Something else here</a>
        </div>
      </li>
    </ul>
  </div>
</li>

2

Answers


  1. You can do this using CSS, and Bootstrap.

    Here is a working example.

    @import url('https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css');
    
    
    .container {
        margin-top: 10px;
    }
    
    .dropdown:hover .dropdown-menu {
        display: block;
        margin-top: 0;
     }
           <div class="navbar navbar-inverse navbar-fixed-top">
                <div class="navbar-inner">
                    <div class="container"> 
                        <ul class="nav">
                            <li class="dropdown"><a href="#" class="dropdown-toggle" data-toggle="dropdown">Link</a>
                                <ul class="dropdown-menu">
                                    <li><a href="#">Link</a></li>
                                    <li><a href="#opening">Link</a></li>
                                </ul>
                            </li>
        
                        </ul>
                    </div>
                </div>
            </div>
    Login or Signup to reply.
  2. It does not need a framework

    You could simply use :hover pseudo-class and chlid combinator(>)

    The following provides three ways to implement a drop-down menu using css

    .nav-item a{
      display: block;
    }
    
    
    .dropdown-menu-1 {
      display: none;
    }
    
    li.dropdown-1:hover>.dropdown-menu-1 {
      display: block;
    }
    
    
    /****** OR *******/
    
    .dropdown-menu-2 {
      height: 0;
      overflow: hidden;
    }
    
    li.dropdown-2:hover>.dropdown-menu-2 {
      height: auto;
    }
    
    /****** OR *******/
    
    .dropdown-menu-3 {
      opacity: 0;
      pointer-events: none;
    }
    
    li.dropdown-3:hover>.dropdown-menu-3 {
      opacity: 1;
        pointer-events: all;
    }
    <ul class="navbar-nav">
      <li class="nav-item dropdown-1">
        <a class="nav-link dropdown-toggle" id="navbarDropdown">Category</a>
        <div class="dropdown-menu-1">
          <a>Login</a>
          <a>Another action</a>
          <a>Something else here</a>
        </div>
      </li>
      <li class="nav-item dropdown-2">
        <a class="nav-link dropdown-toggle" id="navbarDropdown">Category</a>
        <div class="dropdown-menu-2">
          <a>Login</a>
          <a>Another action</a>
          <a>Something else here</a>
        </div>
      </li>
        <li class="nav-item dropdown-3">
        <a class="nav-link dropdown-toggle" id="navbarDropdown">Category</a>
        <div class="dropdown-menu-3">
          <a>Login</a>
          <a>Another action</a>
          <a>Something else here</a>
        </div>
      </li>
    </ul>
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search