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;
}