user9131365
user9131365

Reputation:

Html dropdown menu not working/not displayed


The drop down is visible, but when I tell the block to disappear and I'll hover over it to get it back - it doesn't come back. Heres my CSS coding:

* {
    margin: 0;
    padding: 0;
}

body {
    background-color: black;
    background-size: cover;
}

nav {
    width: 100%;
    height: 60px;
    background-color: #fff;

}

nav p {
    font-family: arial;
    color: #222;
    font-size: 22px;
    line-height: 55px;
    float: left;
    padding: 0px 20px;

}

nav ul {
    float: left;

}

nav ul li {
    float: left;
    list-style: none;
    position: relative;

}

nav ul li a {
    display: block;
    font-family: arial;
    color: #222;
    font-size: 14px;
    padding: 22px 14px; 
    text-decoration: none;

}

nav ul li ul {
    display: none;
    position: absolute;
    background-color: #fff;
    padding: 10px;
    border-radius: 0px 0px 4px 4px;

}

nav ul li: hover ul {
    display: block;

}


nav ul li ul li {
width: 180px;
border-radius: 4px;

}


nav ul li ul li a {
padding: 8px 14px;

}

nav ul li ul li a: hover {
background-color: #f3f3f3;

}

Once I add the 'display: none', it disappears and does not come back! Please can someone help me, I dont understand why it wont come back. I'm following a Youtube video: https://www.youtube.com/watch?v=rgUp302f_lY&t=837s

Upvotes: 1

Views: 37

Answers (1)

Darren
Darren

Reputation: 2290

Your issue is the space between nav ul li: hover. It should be

nav ul li:hover ul {
  display: block;
}

* {
  margin: 0;
  padding: 0;
}

body {
  background-color: black;
}

nav {
  width: 100%;
  height: 60px;
  background-color: #fff;
}

nav p {
  font-family: arial;
  color: #222;
  font-size: 22px;
  line-height: 55px;
  float: left;
  padding: 0px 20px;
}

nav ul {
  float: left;
}

nav ul li {
  float: left;
  list-style: none;
  position: relative;
}

nav ul li a {
  display: block;
  font-family: arial;
  color: #222;
  font-size: 14px;
  padding: 22px 14px;
  text-decoration: none;
}

nav ul li ul {
  display: none;
  position: absolute;
  background-color: #fff;
  padding: 10px;
  border-radius: 0px 0px 4px 4px;
}

nav ul li:hover ul {
  display: block;
}

nav ul li ul li {
  clear: both;
  width: 180px;
  border-radius: 4px;
}

nav ul li ul li a {
  padding: 8px 14px;
  display: block;
}

nav ul li ul li a: hover {
  background-color: #f3f3f3;
}
<nav>
  <ul>
    <li><a href="#">Single</a></li>
    <li><a href="#">Dropdown</a>
      <ul>
        <li><a href="#">Child 1</a></li>
        <li><a href="#">Child 1</a></li>
        <li><a href="#">Child 1</a></li>
      </ul>
    </li>
  </ul>
</nav>

Upvotes: 1

Related Questions