Reputation: 23
Been trying to fix my code for a couple of hours and I just can't. I want to have my navbar have a dropdown function. But I can't seem to make it work.
As you can see I've start on the dropdown menu class, but I can't figure where to go from there. Been googling, and found a lot of examples, tried to copy/paste some of the bits, with no good results. So I was thinking that you might be able to help.
nav {
display: block;
background-color: indianred;
box-shadow: 0px 10px 5px #888888;
}
nav ul {
text-align: center;
}
nav ul li {
display: inline-block;
padding: 20px;
}
nav ul li a {
width: 125px;
color: black;
padding: 20px;
background-color: blueviolet;
text-decoration: none;
}
nav ul li a:hover {
background-color: aqua;
}
.dropdown {
display: none;
}
<nav>
<ul>
<li><a href="#">FORSIDE</a>
</li>
<li><a href="#">ERHVERVSUDDANNELSER</a>
<ul class="dropdown">
<li>content 1</li>
<li>content 1</li>
<li>content 1</li>
<li>content 1</li>
</ul>
</li>
<li><a href="#">EUX</a>
</li>
<li><a href="#">HTX</a>
</li>
<li><a href="#">OM TECH COLLEGE</a>
</li>
</ul>
</nav>
Upvotes: 2
Views: 257
Reputation: 1503
You can try something like this. Didn't want to change too much so the code and UI are still quite messy.
nav {
display: block;
background-color: indianred;
box-shadow: 0px 10px 5px #888888;
}
nav ul {
text-align: center;
}
nav ul li {
display: inline-block;
margin: 20px;
}
nav ul li a {
width: 125px;
color: black;
padding: 20px;
background-color: blueviolet;
text-decoration: none;
}
nav ul li a:hover {
background-color: aqua;
}
.dropdown {
display: none;
position: absolute;
}
nav ul li:hover .dropdown {
display: block;
}
ul.dropdown li {
display: block;
padding: 10px;
}
<nav>
<ul>
<li><a href="#">FORSIDE</a></li>
<li><a href="#">ERHVERVSUDDANNELSER</a>
<ul class="dropdown">
<li><a href="#">content 1</a></li>
<li><a href="#">content 1</a></li>
<li><a href="#">content 1</a></li>
<li><a href="#">content 1</a></li>
</ul>
</li>
<li><a href="#">EUX</a></li>
<li><a href="#">HTX</a></li>
<li><a href="#">OM TECH COLLEGE</a></li>
</ul>
</nav>
Upvotes: 0
Reputation: 1212
ul {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
background-color: #333;
}
li {
float: left;
}
li a, .dropbtn {
display: inline-block;
color: white;
text-align: center;
padding: 14px 16px;
text-decoration: none;
}
li a:hover, .dropdown:hover .dropbtn {
background-color: red;
}
li.dropdown {
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f9f9f9;
min-width: 160px;
box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
z-index: 1;
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
text-align: left;
}
.dropdown-content a:hover {background-color: #f1f1f1}
.dropdown:hover .dropdown-content {
display: block;
}
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">News</a></li>
<li class="dropdown">
<a href="#" class="dropbtn">Dropdown</a>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</li>
</ul>
for more detail visit Dropdown Menu in Navbar
Upvotes: 1
Reputation: 13
you need to write css for the element on hover
like
element1:hover tobeshownele{display:block;}
Upvotes: 0
Reputation: 15609
Change the CSS to this:
nav {
display: block;
background-color: indianred;
box-shadow: 0px 10px 5px #888888;
}
nav ul {
text-align: center;
}
nav ul li {
display: inline-block;
padding: 20px;
position:relative;
}
nav ul li a {
width: 125px;
color: black;
padding: 20px;
background-color: blueviolet;
text-decoration: none;
}
nav ul li a:hover {
background-color: aqua;
}
nav ul li ul {
display:none;
}
nav ul li:hover ul {
display:block;
position:absolute;
background:indianred;
}
<nav>
<ul>
<li><a href="#">FORSIDE</a></li>
<li><a href="#">ERHVERVSUDDANNELSER</a>
<ul class="dropdown">
<li>content 1</li>
<li>content 1</li>
<li>content 1</li>
<li>content 1</li>
</ul>
</li>
<li><a href="#">EUX</a></li>
<li><a href="#">HTX</a></li>
<li><a href="#">OM TECH COLLEGE</a></li>
</ul>
</nav>
You wanted to hide the dropdown but then show it when you hover over the dropdown's parent element.
I then made the parent li position:relative;
and the dropdown position:absolute
so it didn't push any of the other dropdown menu items anywhere it shouldn't be, but didn't style it past giving it a background colour.
Upvotes: 0