Here is a very easy example of CSS based dropdown menu: http://jsfiddle.net/V8aL6/
<ul id="nav">
<li>
<a href="#" title="Return home">Home</a>
</li>
<li>
<a href="#" title="About the company">About</a>
<ul>
<li><a href="#">The product</a></li>
<li><a href="#">Meet the team</a></li>
</ul>
</li>
<li>
<a href="#" title="The services we offer">Services</a>
<ul>
<li><a href="#">Sevice one</a></li>
<li><a href="#">Sevice two</a></li>
<li><a href="#">Sevice three</a></li>
<li><a href="#">Sevice four</a></li>
</ul>
</li>
<li>
<a href="#" title="Our product range">Product</a>
<ul>
<li><a href="#">Small product (one)</a></li>
<li><a href="#">Small product (two)</a></li>
<li><a href="#">Small product (three)</a></li>
<li><a href="#">Small product (four)</a></li>
<li><a href="#">Big product (five)</a></li>
<li><a href="#">Big product (six)</a></li>
<li><a href="#">Big product (seven)</a></li>
<li><a href="#">Big product (eight)</a></li>
<li><a href="#">Enourmous product (nine)</a></li>
<li><a href="#">Enourmous product (ten)</a></li>
<li><a href="#">Enourmous product (eleven)</a></li>
</ul>
</li>
<li>
<a href="#" title="Get in touch with us">Contact</a>
<ul>
<li><a href="#">Out-of-hours</a></li>
<li><a href="#">Directions</a></li>
</ul>
</li>
</ul>
But I can't find a solution to align the submenu to the right edge of it's parent, like this:
Use the w3-right class to float the dropdown to the right, and use CSS to position the dropdown content (right:0 will make the dropdown menu go from right to left).
Wrap a <div> element around the elements to position the dropdown content correctly with CSS. CSS) The . dropdown class uses position:relative , which is needed when we want the dropdown content to be placed right below the dropdown button (using position:absolute ).
Use any element to open the dropdown menu, e.g. a <button>, <a> or <p> element. Use a container element (like <div>) to create the dropdown menu and add the dropdown links inside it. Wrap a <div> element around the button and the <div> to position the dropdown menu correctly with CSS.
In a computer GUI, a drop-down menu is a menu that offers a list of options. The title of the menu, or the currently-selected item in the list, is always displayed. When the visible item is clicked, other items from the list "drop-down" in to view, and the user can choose from those options.
This menu achieves the hiding/showing by modifying the left
property. All you need is to adapt the CSS-rule which steers the show mechanism for the submenu:
#nav li:hover ul{
left:0;
}
instead of aligning it to the left, we want to align it right, so we add right:0;
. However, if we do not touch the left declaration, the menu will get cut off, so instead of left:0;
we write left:auto;
to let the menu expand to it's intrinsic width. To accomodate for the margin of the parent li
, we add the same amount as negative margin and we are done:
#nav li:hover ul{
left:auto;
right:0;
margin-right:-10px;
}
you modified fiddle
Its better and more clean if you position your list to the right and instead of moving UL out of the screen you could just toggle the display property from none to block.
You will need to make some changes in these rules and add those properties:
#nav li:hover ul {
display: block;
right: 0;
}
#nav ul {
display: none;
}
#nav ul li {
margin-right: 0;
}
See my updated fiddle: http://jsfiddle.net/V8aL6/2/
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With