Pure CSS Dropdown Menu
With the help of some advanced selectors a dropdown menu can be easily created with just CSS.
HTML
<!-- Throw in a nice looking font just for the fun of it -->
<link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Yanone+Kaffeesatz:400,700,300,200"/>
<div class="nav">
<ul>
<li><a href="#">One</a></li>
<li><a href="#">Two</a>
<ul>
<li><a href="#">Two - One</a></li>
<li><a href="#">Two - Two</a></li>
<li><a href="#">Two - Three</a>
<ul>
<li><a href="#">2-3-1</a></li>
<li><a href="#">2-3-2</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#">Three</a>
<ul>
<li><a href="#">Three - One</a></li>
<li><a href="#">Three - Two</a></li>
</ul>
</li>
<li><a href="#">Four</a></li>
<li><a href="#">Five</a>
<ul>
<li><a href="#">5 - One</a></li>
<li><a href="#">5 - Two</a></li>
</ul>
</li>
<li><a href="#">Six</a></li>
</ul>
</div>
CSS
body, div, h1, h2, h3, h4, h5, h6, p, ul, ol, li, dl, dt, dd, img, form, fieldset, input, textarea, blockquote {
margin: 0;
padding: 0;
border: 0;
}
body {
background: url("http://jenniferperrin.com/image/background.gif");
font-family: 'Yanone Kaffeesatz';
font-size: 18px;
line-height: 20px;
}
.nav {
margin: 30px auto;
text-align: center;
}
.nav ul ul {
display: none;
}
.nav ul li:hover > ul {
display: block;
}
.nav ul {
background: #efefef;
background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%);
background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%);
box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
padding: 0 20px;
border-radius: 10px;
list-style: none;
position: relative;
display: inline-table;
}
.nav ul:after {
content: "";
clear: both;
display: block;
}
.nav ul li {
float: left;
}
.nav ul li:hover {
background: #444;
}
.nav ul li:hover a {
color: #fff;
}
.nav ul li a {
display: block;
padding: 15px 30px;
color: #444;
text-decoration: none;
}
.nav ul ul {
background: #444;
border-radius: 0px;
padding: 0;
position: absolute;
top: 100%;
}
.nav ul ul li {
float: none;
border-top: 1px solid #222222;
border-bottom: 1px solid #222222;
position: relative;
}
.nav ul ul li a {
padding: 15px 30px;
color: #fff;
}
.nav ul ul li a:hover {
background: #d46a15;
}
.nav ul ul ul {
position: absolute;
left: 100%;
top:0;
}