Search code examples
htmlcssnavbardropdown

Dropdown navbar complication


i dont know where it goes wrong but everything i try isnt getting my dropdown to close and stays a big block. anyone can show me what i do wrong so i can remind the problem and what i did wrong in the first place?

i tried to rework it all but cant figure out how i get in to drop down insted of staying open like that.

body       {font-family:'Lucida Grande', Helvetica, Arial, sans-serif;
            padding:20px 50px 150px;
            font-size:13px;
            text-align:center;
            background:#666;}

.navbar a   {text-decoration:none;
            color:#FF0004}
 


.navbar ul         {text-align:left; 
	               display:inline;
                   margin:0px;
                   padding:15px 4px 17px 0;
                   list-style:none;
                   -webkit-box-shadow:0 0 5px rgba(0, 0, 0, 0.15);
                   -moz-box-shadow:0 0 5px rgba(0, 0, 0, 0.15);
                   box-shadow:0 0 5px rgba(0, 0, 0, 0.15);}


.navbar ul li      {font:bold 12px/18px sans-serif;
                   display:inline-block;
                   margin-right:-4px;
                   postion:relative;
                   padding:15px 20px;
                   background:#fff;
                   cursor:pointer;
                   -webkit-transition:all 0.2s;
                   -moz-transition:all 0.2s;
                   -ms-transition:all 0.2s;
                   -o-transition:all 0.2s;
                   transition:all 0.2s;}


.navbar ul li:hover {background:#555;
                    color:#FFF;}


.navbar ul li ul    {padding:0;
                    postion:absolute;
                    top:48px;
                    left:0;
                    width:150px;
                    visibility:hidden;
                    -webkit-transition:opacity 0.2s;
                    -moz-transition:opacity 0.2s;
                    -o-transition:opacity 0.2s;
                    -transition:opacity 0.2s;}

.navbar ul li ul li {backgound:#555;
                    display:block;
                    color:#FFF;
                    text-shadow:0 -01px 0 #000;}

.navbar li ul li:hover {backgound:#666;}

.navbar ul li ul li:hover ul {display:block;
                             opacity: 1;
                             visibility:visible;
                             }
<div class="navbar">
   <ul>
      <li><a href="home.html">Home</a></li>
	   <li><a href="recepten.html">Recepten</a>
           <ul>
			   <li><a href="lactosevrij.html">Lactosevrij</a></li>
			   <li><a href="suikervrij.html">Suikervrij</a></li>
			   <li><a href="glutenvrij.html">Glutenvrij</a></li>
           </ul></li>
	   <li><a href="abonneren.html">Abonneren</a>
           <ul>
			   <li><a href="basis.html">Basis</a></li>
			   <li><a href="standaard.html">Standaard</a></li>
			   <li><a href="luxe.html">Luxe</a></li>
           </ul></li>
	   <li><a href="contact.html">Contact</a></li>
   </ul>	
</div>


Solution

  • You had some typos and also targeting the wrong ul.

    body {
      font-family: 'Lucida Grande', Helvetica, Arial, sans-serif;
      padding: 20px 50px 150px;
      font-size: 13px;
      text-align: center;
      background: #666;
    }
    
    .navbar a {
      text-decoration: none;
      color: #FF0004
    }
    
    .navbar ul {
      text-align: left;
      display: inline;
      margin: 0px;
      padding: 15px 4px 17px 0;
      list-style: none;
      -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
      -moz-box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
      box-shadow: 0 0 5px rgba(0, 0, 0, 0.15);
    }
    
    .navbar ul li {
      font: bold 12px/18px sans-serif;
      display: inline-block;
      margin-right: -4px;
      position: relative;
      /*position typo */
      padding: 15px 20px;
      background: #fff;
      cursor: pointer;
      -webkit-transition: all 0.2s;
      -moz-transition: all 0.2s;
      -ms-transition: all 0.2s;
      -o-transition: all 0.2s;
      transition: all 0.2s;
    }
    
    .navbar ul li:hover {
      background: #555;
      color: #FFF;
    }
    
    .navbar ul li ul {
      padding: 0;
      position: absolute;
      /*position typo */
      top: 48px;
      left: 0;
      width: 150px;
      visibility: hidden;
      -webkit-transition: opacity 0.2s;
      -moz-transition: opacity 0.2s;
      -o-transition: opacity 0.2s;
      -transition: opacity 0.2s;
    }
    
    .navbar ul li ul li {
      background: #555;
      display: block;
      color: #FFF;
      text-shadow: 0 -01px 0 #000;
    }
    
    .navbar li ul li:hover {
      background: #666;
    }
    
    
    /* i refactored this selector */
    
    .navbar ul li:hover ul {
      display: block;
      opacity: 1;
      visibility: visible;
    }
    <div class="navbar">
      <ul>
        <li><a href="home.html">Home</a></li>
        <li><a href="recepten.html">Recepten</a>
          <ul>
            <li><a href="lactosevrij.html">Lactosevrij</a></li>
            <li><a href="suikervrij.html">Suikervrij</a></li>
            <li><a href="glutenvrij.html">Glutenvrij</a></li>
          </ul>
        </li>
        <li><a href="abonneren.html">Abonneren</a>
          <ul>
            <li><a href="basis.html">Basis</a></li>
            <li><a href="standaard.html">Standaard</a></li>
            <li><a href="luxe.html">Luxe</a></li>
          </ul>
        </li>
        <li><a href="contact.html">Contact</a></li>
      </ul>
    </div>