Reputation: 5494
I created a menu and a submenu that should appear after I hover over the list elements of the main menu. The problem is that the widths of the main menu's list elements changes while hovering, and it looks puzzling. I tried it with a fixed width, but the space between the menu items is too big then.
I also tried to set the submenu to position absolute, but the problem was that the submenu was always located at the same position and not beneath the main menu's item which was active.
I created a codepen for this issue.
HTML:
<ul class="menubar">
<li class="menubar-li"><a href="#">Unternehmen</a>
<ul class="menubar-sub">
<li class="menubar-sub-li"><a href="../html/profil.html">Profil</a>
<li class="menubar-sub-li"><a href="../html/meilensteine.html">Meilensteine</a>
<li class="menubar-sub-li"><a href="../html/team.html">Team</a>
<li class="menubar-sub-li"><a href="../html/news.html">News</a>
<li class="menubar-sub-li"><a href="../html/jobs.html">Jobs</a></li>
</ul>
</li>
<li class="menubar-li"><a href="#">Kompetenzen</a>
<ul class="menubar-sub">
<li class="menubar-sub-li"><a href="../html/kreation.html">Kreation</a>
<ul class="menubar-subsub">
<li><a href="../html/strategie.html">Strategie</a>
<li><a href="../html/design.html">Design</a>
<li><a href="../html/online.html">Online</a>
<li><a href="../html/reinzeichnung.html">Reinzeichnung</a></li>
</ul>
</li>
<li class="menubar-sub-li"> <a href="../html/prepress.html">Prepress</a>
<ul class="menubar-subsub">
<li><a href="../html/seitenproduktion.html">Seitenproduktion</a></li>
<li><a href="../html/kreativretusche.html">Kreativretusche</a>
<li><a href="../html/colormanagement.html">Colormanagement</a>
<li><a href="../html/proofen.html">Proofen</a></li>
</ul>
</li>
<li class="menubar-sub-li"><a href="../html/druck.html">Druck</a>
<ul class="menubar-subsub">
<li><a href="../html/personalisiert.html">Personalisiert</a></li>
<li><a href="../html/web2print.html">Web 2 Print</a></li>
</ul>
</li>
<li class="menubar-sub-li"><a href="../html/katalogmanagement.html">Katalogmanagement</a></ul>
</li>
<li class="menubar-li"><a href="../html/portfolio.html">Portfolio</a></li>
<li class="menubar-li"><a href="#">Service</a>
<ul class="menubar-sub">
<li class="menubar-sub-li"><a href="../html/mediapool.html">Mediapool</a></li>
<li class="menubar-sub-li"><a href="../html/duon.html">DUON</a></li>
<li class="menubar-sub-li"><a href="../html/datenupload.html">Datenupload</a></li>
<li class="menubar-sub-li"><a href="../html/downloads.html">Downloads</a>
</ul>
</li>
<li class="menubar-li"><a href="#">Kontakt</a>
<ul class="menubar-sub">
<li class="menubar-sub-li"><a href="../html/ansprechpartner.html">Ansprechpartner</a></li>
<li class="menubar-sub-li"><a href="../html/anfahrt.html">Anfahrt</a></li>
<li class="menubar-sub-li"><a href="../html/impressum.html">Impressum</a></li>
</ul>
</li>
</ul>
CSS:
.menubar {
list-style: none;
position: relative;
bottom: 16px;
}
.menubar a {
color: black;
text-decoration:none;
font-size: 13px;
position: relative;
}
.menubar-li {
float: left;
height:29px;
line-height:29px;
vertical-align: middle;
padding-left: 10px;
padding-right: 10px;
margin-right: 10px;
}
.menubar-li:hover {
background-color: #94ba1d;
cursor: pointer;
}
.menubar-li:hover .menubar-sub {
display: block;
}
.menubar-sub {
display: none;
list-style: none;
margin-top: 1px;
padding-bottom: 10px;
padding-right: 10px;
padding-left: 0px;
background-color: #94ba1d;
position: relative;
left: -10px;
}
.menubar-sub-li {
line-height: 14px;
padding-top: 5px;
padding-left: 10px;
}
.menubar-subsub {
display: none;
}
Upvotes: 0
Views: 732
Reputation: 19969
You can position the submenu below the main menu button by setting the main menu button to position: relative
and placing the (absolute) submenu inside it. You then show/hide the submenu by toggling overflow: hidden
and visible
.
Here is a demo: http://codepen.io/seraphzz/pen/osGnh
Upvotes: 1