Search code examples
htmlcsstwitter-bootstrapdrop-down-menunavbar

Bootstrap navbar dropdown menu buttons not showing when navbar in collapsed hamburger


I've got a boostrap navbar with a css media query to collapse it and make it openable via a hamburger button when the screen is below a certain size (for mobile devices). But, I also have a drop down menu within my navbar which works fine when the navbar is expanded in full screen but when I open it from the hamburger version of the navbar, the buttons in the dropdown menu do not show.

WIDE SCREEN - NAVBAR DROP DOWN WORKS FINE: [![WIDE SCREEN - NAVBAR DROP DOWN WORKS FINE][1]][1]

NARROW SCREEN (hamburger) - DROPDOWN MENU BUTTONS DO NOT SHOW: [![NARROW SCREEN (hamburger) - DROPDOWN MENU BUTTONS DO NOT SHOW][2]][2]

Below is the html code for the Navbar:

<nav class="navbar navbar-default" data-spy="affix" data-offset-top="900">
  <div class="container-fluid">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
      <a class="navbar-brand" href="Blog v.0.html#postWelcome"> Blog </a>
    </div>


    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active" id="home"><a href="Blog v.0.html#postWelcome">Home <span class="sr-only">(current)</span></a></li>
        <li><a href="#">What is this Blog?</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Streams <span class="caret"></span></a>
          <ul class="dropdown-menu pinkBackground">
            <li><a style="color:#062F4F" href="#">Stream 1</a></li>
            <li><a style="color:#062F4F" href="#">Stream 2</a></li>
            <li><a style="color:#062F4F" href="#">Stream 3</a></li>
          </ul>
        </li>
      </ul>
      
      
    </div>
</nav>

This is the CSS media query that collapses the navbar:

@media (min-width: 768px) {
    .navbar .navbar-nav {
        display: inline-block;
        float: none;
        vertical-align: top;

    }

    .navbar .navbar-collapse {
        text-align: center;
    }
}

This is the CSS code for my Navbar:

.navbar-default {
    z-index: 1;
    background-color: #062F4F;
    border-color: #062F4F;
}
/* title */
.navbar-default .navbar-brand {
    color: #FFFFFF;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
    color: #813772;
}
/* link */
.navbar-default .navbar-nav > li > a {
    color: #FFFFFF;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
    color: #813772;
}
.navbar-default .navbar-nav > .active > a, 
.navbar-default .navbar-nav > .active > a:hover, 
.navbar-default .navbar-nav > .active > a:focus {
    color: #FFFFFF;
    background-color: #813772;
}
.navbar-default .navbar-nav > .open > a, 
.navbar-default .navbar-nav > .open > a:hover, 
.navbar-default .navbar-nav > .open > a:focus {
    color: #FFFFFF;
    background-color: #062F4F;
}
/* caret */
.navbar-default .navbar-nav > .dropdown > a .caret {
    border-top-color: #000000;
    border-bottom-color: #000000;
}

Any help is much appreciated as to why the navbar dropdown buttons do not show when the menu is opened from collapsed with the hamburger button (also, I realise it's probable going to be a pretty stupid and simple mistake but I can't find it)


Solution

  • thats working fine but anchor color is same as background , You must use class for this and change color with media screen or let the default bootstrap color on mobile (gray)

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
    <style>
      .navbar-default {
        z-index: 1;
        background-color: #062F4F;
        border-color: #062F4F;
    }
    /* title */
    .navbar-default .navbar-brand {
        color: #FFFFFF;
    }
    .navbar-default .navbar-brand:hover,
    .navbar-default .navbar-brand:focus {
        color: #813772;
    }
    /* link */
    .navbar-default .navbar-nav > li > a {
        color: #FFFFFF;
    }
    .navbar-default .navbar-nav > li > a:hover,
    .navbar-default .navbar-nav > li > a:focus {
        color: #813772;
    }
    .navbar-default .navbar-nav > .active > a, 
    .navbar-default .navbar-nav > .active > a:hover, 
    .navbar-default .navbar-nav > .active > a:focus {
        color: #FFFFFF;
        background-color: #813772;
    }
    .navbar-default .navbar-nav > .open > a, 
    .navbar-default .navbar-nav > .open > a:hover, 
    .navbar-default .navbar-nav > .open > a:focus {
        color: #FFFFFF;
        background-color: #062F4F;
    }
    /* caret */
    .navbar-default .navbar-nav > .dropdown > a .caret {
        border-top-color: #000000;
        border-bottom-color: #000000;
    }
    .navbar-default .navbar-nav  .pinkBackground>li>a {
        color:#062F4F ;
    }
    
    @media (min-width: 768px) {
        .navbar .navbar-nav {
            display: inline-block;
            float: none;
            vertical-align: top;
    
        }
    
        .navbar .navbar-collapse {
            text-align: center;
        }
    }
    
     </style>
    <nav class="navbar navbar-default" data-spy="affix" data-offset-top="900">
      <div class="container-fluid">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="Son Of The Right Hand v.0.html#postWelcome">Son of the Right Hand</a>
        </div>
    
    
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav">
            <li class="active" id="home"><a href="Son Of The Right Hand v.0.html#postWelcome">Home <span class="sr-only">(current)</span></a></li>
            <li><a href="#">What is tSotRH?</a></li>
            <li><a href="#">About Me</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Streams <span class="caret"></span></a>
              <ul class="dropdown-menu pinkBackground">
                <li><a href="#">Stream 1</a></li>
                <li><a href="#">Stream 2</a></li>
                <li><a  href="#">Stream 3</a></li>
              </ul>
            </li>
          </ul>
    
    
        </div>
    </nav>